void PreOrderRecursionTraverse(BiTree T) //先序递归二叉树
{
if(T == NULL) return; //T为NULL,退出
printf("%C", T->data); //先访问根结点
PreOrderRecursionTraverse(T->lchild); //再遍历左子树
PreOrderRecursionTraverse(T->rchild); //再遍历右子树
}
中序递归遍历和后序递归遍历方法相似,只是访问的时机不同
void InOrderRecursionTraverse(BiTree T) //中序递归二叉树
{
if(T == NULL) return; //T为NULL,退出
PreOrderRecursionTraverse(T->lchild); //先遍历左子树
printf("%c", T->data); //再访问中间结点
PreOrderRecursionTraverse(T->rchild); //再遍历右子树
}
void PostOrderRecursionTraverse(BiTree T) //后序递归二叉树
{
if(T == NULL) return; //T为NULL,退出
PreOrderRecursionTraverse(T->lchild); //先遍历左子树
PreOrderRecursionTraverse(T->rchild); //再遍历右子树
printf("%c", T->data); //最后访问根结点
}