这是二叉树基本知识的最后一篇文章来,讲些二叉树的遍历。
二叉树的四样遍历依然有,当然,我重点讲前二:先序、后序。顺带讲讲层次遍历。还有一个特殊的——中序遍历。
一、前序遍历(又叫先序遍历)
前序遍历,和普通树一样,总结起来四句话——先根结点,再左子树,后右子树,到此完工。
呵呵,其实挺简单的。
代码:
void xian(Tree T)//先序递归遍历
{
if(T!=NULL)
{
cout<<T->data<<" ";
PreOrder(T->lchild);
PreOrder(T->rchild);
}
}
二、中序遍历
这我要好好讲一讲了,他的规律是左子树---->根----->右子树。
如果是个满二叉,那么这深入下去……什么时候能回到根啊。
当然,因为非二叉树的普通树度大于等于3,所以嘛……进行不了中序遍历。
代码:
void zhong(BiTree T)//中序递归遍历
{
if(T!=NULL)
{
InOrder(T->lchild);
cout<<T->data<<" ";
InOrder(T->rchild);
}
}
三、后序遍历
跟普通有根树一样,先左子树,再右子树,后根结点,到此完工。
没必要多说,直接上代码。
代码:
void PostOrder(BiTree T)//后序递归遍历
{
if(T!=NULL)
{
PostOrder(T->lchild);
PostOrder(T->rchild);
cout<<T->data<<" ";
}
}
四、层次遍历
这就是普通操作,没必要给代码。
一层一层来,很简单。
后面,我给几个例子。
1.图一,普通二叉树

所以嘛,四遍历:
先序:ABDGECF;
中序:DGBEAFC;
后序:GDEBFCA;
层次:ABCDEFG;(这答案,呵呵)
还简单,再来一个——
2.完全二叉树

这树编号是数字呵,不过没关系。
四遍历:
先序:124895(10)367;
中序:8492(10)51637;
后序:894(10)526731;
层次:123456789(10);//这也爽
也差不多了,例子也举够了,就这样吧。二叉树的遍历,其实挺常考的,不过也没事,挺简单。
给两道题哈,1339、1340,一本通网站,经典的题,都是知两序,求一序,也满经典的。
日更完成,又是一篇“偏大型日更文”,600字。