二叉树的遍历,是将树形结构线性化的过程。
#include<iostream>
#include<queue>
using namespace std;
typedef char Elemtype;
typedef struct BiTNode
{
Elemtype data;
BiTNode *lchild,*rchild;
}BiTNode,*BiTree;
void PreOrderTraverse(BiTree T)//前序
{
if(!T)return ;
printf("%c",T->data);
PreOrderTraverse(T->lchild);
PreOrderTraverse(T->rchild);
}
void OrderTraverse(BiTree T)//中序
{
if(!T)return ;
OrderTraverse(T->lchild);
printf("%c",T->data);
OrderTraverse(T->rchild);
}
void PostOrderTraverse(BiTree T)//后序
{
if(!T)return ;
PostOrderTraverse(T->lchild);
PostOrderTraverse(T->rchild);
printf("%c",T->data);
}
void LayerTraverse(BiTree T)//层次
{
if(!T)return ;
queue<BiTree> ue;
ue.push(T);
while(!ue.empty)
{
BiTNode * tmp = ue.front();
printf("%c",tmp->data);
if(tmp->lchild)
{
ue.push(tmp->lchild);
}
if(tmp->rchild)
{
ue.push(tmp->rchild);
}
ue.pop();
}
}
本文深入探讨了二叉树的遍历方法,包括前序、中序、后序及层次遍历,提供了详细的C++代码实现,有助于理解树形数据结构的线性化过程。
154

被折叠的 条评论
为什么被折叠?



