总结一下二叉树的遍历。
二叉树有三种遍历,分别是:
先序遍历:根结点—左子树—右子树(中 左 右)
中序遍历:左子树—根结点—右子树(左 中 右)
后序遍历:左子树—右子树—根结点(左 右 中)
使用递归能够较好的解决问题。
我们首先定义一个结构体
typedef struct BitreeNode
{
char data;
struct BiterrNode *lc,*rc;
}BitreeNode,*BiTree;
先序遍历:
void PreOrder(BiTree T)
{
if(T!=NULL)
{
cout<<T->data<<" ";//访问根
PreOrder(T->lc);
PreOrder(T->rc);
}
}
中序遍历:
void InOrder(BiTree T)
{
if(T!=NULL)
{
InOrder(T->lc);
cout<<T->data<<" ";//访问根
InOrder(T->rc);
}
}
后序遍历:
void PostOrder(BiTree T)
{
if(T!=NULL)
{
PostOrder(T->lc);
PostOrder(T->rc);
cout<<T->data<<" ";//访问根
}
}
以上便是二叉树的遍历。
本来还想配题目的,但是好像还没有搞懂 -_-||(明天补上)。