另见求树高 http://blog.csdn.net/Justme0/article/details/7694704
史上最简明易懂非递归遍历二叉树算法
void PreOrderTraverse_R(BiTree BT)//采用递归方式先序遍历二叉树BT
{
if(BT != NULL)
{
printf("%c", BT->data);//输出该结点(根结点)
PreOrderTraverse_R(BT->lchild); //遍历左子树
PreOrderTraverse_R(BT->rchild);//遍历右子树
}
}
void InOrderTraverse_R(BiTree BT)//采用递归方式中序遍历二叉树BT
{
if(BT != NULL)
{
InOrderTraverse_R(BT->lchild); //遍历左子树
printf("%c", BT->data);//输出该结点(根结点)
InOrderTraverse_R(BT->rchild);//遍历右子树
}
}
void PostOrderTraverse_R(BiTree BT)//采用递归方式后序遍历二叉树BT
{
if(BT != NULL)
{
PostOrderTraverse_R(BT->lchild); //遍历左子树
PostOrderTraverse_R(BT->rchild);//遍历右子树
printf("%c", BT->data);//输出该结点(根结点)
}
}