二叉樹(shù)及其遍歷
什么是二叉樹(shù)?它是一種樹(shù)型結構,簡(jiǎn)單地說(shuō),形如下面的圖形稱(chēng)為二叉樹(shù)。
( a ) (b ) ( c ) (d ) ( e )
除空二叉樹(shù)外,有一個(gè)唯一的根接點(diǎn),左、右子樹(shù)都是二叉樹(shù)。
可以得知:
1、 二叉樹(shù)的每個(gè)結點(diǎn)至多只有二棵子樹(shù)(即不存在結點(diǎn)的度大于2的結點(diǎn))。
2、 二叉樹(shù)的子樹(shù)有左右之分,其次序不能任意顛倒。
二叉樹(shù)的性質(zhì):
1、 在二叉樹(shù)的第i層上至多有2i-1個(gè)結點(diǎn)(i>=1)。
請推導:
2、深度為k的二叉樹(shù)最多有2k-1個(gè)結點(diǎn)。
請推導:
3、 對任何一棵二叉樹(shù)T,如果其終端結點(diǎn)數為n0個(gè),度為2的結點(diǎn)數為n2個(gè),則n0=n2+1個(gè)。
請推導:
滿(mǎn)二叉樹(shù):是指一棵深度為K且有2k-1個(gè)結點(diǎn)的二叉樹(shù)。
二叉樹(shù)的遍歷方法
比如:有下列二叉樹(shù):
a b e c d f
(先序)先根遍歷:(根左右)先訪(fǎng)問(wèn)根,再訪(fǎng)問(wèn)左子樹(shù),最后訪(fǎng)問(wèn)右子樹(shù),則可得如下的序列:abcdef
(中序)中根遍歷:(左根右)先訪(fǎng)問(wèn)左子樹(shù),再訪(fǎng)問(wèn)根,最后訪(fǎng)問(wèn)右子樹(shù),則可得如下的序列:cbdaef
(后序)后根遍歷:(左右根)先訪(fǎng)問(wèn)左子樹(shù),再訪(fǎng)問(wèn)右子樹(shù),最后訪(fǎng)問(wèn)根,則可得如下的序列:cdbfea
練習:
1、表達式(1+34)*5-56/7 的后綴表達式為( )。
A) 1+34*5-56/7 B) -*+1 34 5/56
D) 1 34 5* +56 7/- E) 1 34+5 56 7-*/
解:表達式(1+34)*5-56/7 的后綴表達式即為該表達式對應的二叉樹(shù)的后序遍歷。
所以,首先按運算優(yōu)先級關(guān)系畫(huà)出(1+34)*5-56/7的二叉樹(shù),然后再用后序遍歷得出結果。
聯(lián)系客服