二叉树的遍历可以用递归实现,也可以用非递归实现,递归实现简单,代码少。二叉树的遍历分为先序、中序、后序遍历。先序遍历是先遍历树的根节点,递归遍历左子树,最后递归遍历右子树。中序遍历是先递归遍历左子树,访问根节点,递归访问右子树,后序遍历是先递归遍历左子树,然后递归遍右子树,最后访问根节点
typedef struct node{
ElemType data;
struct node* lChild;
struct node* rChild;
}BTNode;
1.先序递归遍历
void PreOrder(BTNode* b){
if(b!=NULL){
printf("%c",b->data);
PreOrder(b->lChild);
PreOrder(b->rChild);
}
}
2.中序递归遍历
void InOrder(BTNode* b){
if(b!=NULL){
InOrder(b->lChild;)
printf("%c",b->data);
InOrder(b>rChild);
}
}
3.后序递归遍历
void PostOrder(BTNode* b){
if(b!=NULL){
PostOrder(b->lChild);
PostOrder(b->rChild);
printf("%c",b->data);
}
}