二叉树遍历的思想:
1.先序遍历
先序遍历二叉树的过程是:
(1)访问根节点;
(2)先序遍历左子树;
(3)先序遍历右子树。
2.中序遍历
中序遍历二叉树的过程是:
(1)中序遍历左子树;
(2)访问根节点;
(3)中序遍历右子树。
3.后序遍历
后序遍历二叉树的过程是:
(1)先序遍历左子树;
(2)先序遍历右子树;
(3)访问根节点。
二叉树遍历递归算法
由二叉树的先序、中序和后序三种遍历过程得到如下三种递归算法如下:
void PreOrder(BTNode *b)
{
if(b!=NULL)
{
printf("%c",b->data);
PreOrder(b->lchild);
PreOrder(b->rchild);
}
}
void InOrder(BTNode *b)
{
if(b!=NULL)
{
PreOrder(b->lchild);
printf("%c",b->data);
PreOrder(b->rchild);
}
}
void PostOrder(BTNode *b)
{
if(b!=NULL)
{
PreOrder(b->lchild);
PreOrder(b->rchild);
printf("%c",b->data);
}
}