二叉树遍历
![](https://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif)
//二叉链表节点类型
typedef struct BiTnode
{
int data;
struct BiTnode *lchild,*rchild;
}BiTnode,*BiTree;
//二叉树的先序遍历,先访问根节点,先序遍历根节点左子树,先序遍历二叉树右子树
void PreOrder(BiTree root)
{
if(NULL==root)
return;
else
{
printf("%d",root->data);
PreOrder(root->lchild);
PreOrder(root->rchild);
}
}
//二叉树的中序遍历,中序遍历根节点左子树,访问根节点,中序遍历二叉树右子树
void InOrder(BiTree root)
{
if(NULL==root)
return;
else
{
PreOrder(root->lchild);
printf("%d",root->data);
PreOrder(root->rchild);
}
}
//二叉树的后序遍历,后序遍历根节点左子树,后序遍历二叉树右子树,访问根节点
void PostOrder(BiTree root)
{
if(NULL==root)
return;
else
{
PreOrder(root->lchild);
PreOrder(root->rchild);
printf("%d",root->data);
}
}
typedef struct BiTnode
{
int data;
struct BiTnode *lchild,*rchild;
}BiTnode,*BiTree;
//二叉树的先序遍历,先访问根节点,先序遍历根节点左子树,先序遍历二叉树右子树
void PreOrder(BiTree root)
{
if(NULL==root)
return;
else
{
printf("%d",root->data);
PreOrder(root->lchild);
PreOrder(root->rchild);
}
}
//二叉树的中序遍历,中序遍历根节点左子树,访问根节点,中序遍历二叉树右子树
void InOrder(BiTree root)
{
if(NULL==root)
return;
else
{
PreOrder(root->lchild);
printf("%d",root->data);
PreOrder(root->rchild);
}
}
//二叉树的后序遍历,后序遍历根节点左子树,后序遍历二叉树右子树,访问根节点
void PostOrder(BiTree root)
{
if(NULL==root)
return;
else
{
PreOrder(root->lchild);
PreOrder(root->rchild);
printf("%d",root->data);
}
}