这是非常基本但同时非常重要的基本概念,代码非常相似。
前序遍历:
首先访问根结点,前序遍历左子树,前序遍历右子树。
中序遍历:
遍历根结点的左子树,访问根结点,最后遍历右子树。
后序遍历:
先叶子再结点遍历左右子树。
//前序遍历
void PreOrderTraverse(BiTree T)
{
if (T == NULL)
return;
printf("%c", T->data);
PreOrderTraverse(T->lchild);
PreOrderTraverse(T->rchild);
}
//中序遍历
void PreOrderTraverse(BiTree T)
{
if (T == NULL)
return;
PreOrderTraverse(T->lchild);
printf("%c", T->data);
PreOrderTraverse(T->rchild);
}
//后序遍历
void PreOrderTraverse(BiTree T)
{
if (T == NULL)
return;
PreOrderTraverse(T->lchild);
PreOrderTraverse(T->rchild);
printf("%c", T->data);
}