昨天写数据结构关于二叉树的几种顺序的递归及非递归遍历的程序,后续遍历有点难。现在把程序给大家参考一下,有些思路参考自:的思路。
一、先序遍历二叉树
1.递归遍历
每次先判断是否为空树,若不是则访问根节点,然后左子树,最后右子树。
void PreOrderTraverse1(BiTree T)
{//先序遍历二叉树T的递归算法
// cout<<"二叉树先序递归遍历\n";
if(T)
//若二叉树非空
{
cout<<T->data;
//访问根节点
PreOrderTraverse1(T->lchild);
//遍历左孩子
PreOrderTraverse1(T->rchild);
//遍历右孩子
}