二叉樹(下)

這是二叉樹基本知識的最后一篇文章來,講些二叉樹的遍歷。

二叉樹的四樣遍歷依然有,當然,我重點講前二:先序、后序。順帶講講層次遍歷。還有一個特殊的——中序遍歷。


一、前序遍歷(又叫先序遍歷)

前序遍歷,和普通樹一樣,總結起來四句話——先根結點,再左子樹,后右子樹,到此完工。

呵呵,其實挺簡單的。

代碼:

void xian(Tree T)//先序遞歸遍歷

?{

? ? if(T!=NULL)

? ? ?{

? ? ? ? ?cout<<T->data<<" ";

? ? ? ? ?PreOrder(T->lchild);

? ? ? ? ?PreOrder(T->rchild);

? ? ?}

?}

二、中序遍歷

這我要好好講一講了,他的規(guī)律是左子樹---->根----->右子樹。

如果是個滿二叉,那么這深入下去……什么時候能回到根啊。

當然,因為非二叉樹的普通樹度大于等于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.圖一,普通二叉樹

image圖一

所以嘛,四遍歷:

先序:ABDGECF;

中序:DGBEAFC;

后序:GDEBFCA;

層次:ABCDEFG;(這答案,呵呵)

還簡單,再來一個——

2.完全二叉樹

image圖二:完全二叉樹

這樹編號是數(shù)字呵,不過沒關系。

四遍歷:

先序:124895(10)367;

中序:8492(10)51637;

后序:894(10)526731;

層次:123456789(10);//這也爽


也差不多了,例子也舉夠了,就這樣吧。二叉樹的遍歷,其實挺??嫉模贿^也沒事,挺簡單。

給兩道題哈,1339、1340,一本通網站,經典的題,都是知兩序,求一序,也滿經典的。

日更完成,又是一篇“偏大型日更文”,600字。

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容