二叉树的三种遍历方式
Posted huqian477
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了二叉树的三种遍历方式相关的知识,希望对你有一定的参考价值。
#include<iostream>
using namespace std;
#define QUEUE_INIT_SIZE 100 //循环队列初始元素个数
#define QUEUEINCREMENT 10 //循环队列空间扩展增量
typedef char TElemType;
typedef struct BiTNode
TElemType data;
struct BiTNode *lchild, *rchild; /*左右孩子指针*/
BiTNode, *BiTree;
//创建二叉树(先序遍历方式)
void CreateBiTree (BiTree &T)
char ch;
/
cin>>ch;
if(ch==‘#‘)
T=NULL;
else
T=new BiTNode; //生成根节点
T->data=ch;
CreateBiTree(T->lchild);
CreateBiTree(T->rchild);
//按先序输入二叉树结点的值(#表示空),递归创建二叉链表
//先序遍历
void PreOrderTraverse (BiTree T)
if(T)
cout<<T->data;
PreOrderTraverse (T->lchild);
PreOrderTraverse (T->rchild);
else cout<<"";//按先序递归显示二叉树结点的值
//中序遍历
void InOrderTraverse (BiTree T)
if(T)
InOrderTraverse(T->lchild);
cout<<T->data;
InOrderTraverse(T->rchild);
else cout<<""; //按中序递归显示二叉树结点的值
//后序遍历
void PostOrderTraverse (BiTree T)
if(T)
PostOrderTraverse (T->lchild);
PostOrderTraverse (T->rchild);
cout<<T->data;
else cout<<""; //按后序递归显示二叉树结点的值
以上是关于二叉树的三种遍历方式的主要内容,如果未能解决你的问题,请参考以下文章