數據結構——樹和二叉樹



? ? 葉子結點:指的是度為0的結點(5,6,7,3,9,8為葉子結點);


? ? 分支結點:除了葉子結點,其他的結點(包括根結點)稱之為分支結點(1,2,4,8);



? ? ? ? 葉子結點分支結點的關系:互補關系

? ? ? ? 葉子結點+分支結點 = 總結點


? ? 內部結點:在分支結點基礎上,除去根節點,其余的就是內部結點(2,4,8);


? ? 結點的度:結點的下一層有多少個相關聯的結點就有多少個度;


? ? ? ? ? ? 1的度為3,2的度為3,4的度為1,8的度為2,3的度為0;

? ? 樹的度:所有結點的度當中,度數最高的一個(3);


? ? (父結點子結點兄弟結點):是相對的量

? ? ps=>

? ? ? ? 5結點相對2結點:它是子結點

? ? ? ? 2結點相對5結點:他是父結點

? ? ? ? 5結點相對6,7結點:它是兄弟結點

? ? 也就是說。2為5,6,7的父結點。 5,6,7為2的子結點。5,6,7互為兄弟結點


? ? 層次:這里有4層


? ? 唯一沒有計算入度的就是根結點;

? ? 假設一棵樹的總結點數為n,總度數為k,那么 n = k+1;


? ? ? ? 練習01:


練習01

1.先求總結點數: n = 3*2+2*1+1 = 9;

最后得出結果C正確;

? ? 樹的遍歷


? ? ? ? 前序遍歷:先訪問根,再一次訪問子結點;

? ? ? ? ? ? 1-2-5-6-7-3-4-8-9-10


? ? ? ? 后序遍歷:先訪問子結點,再訪問根點

? ? ? ? ? ? 5-6-7-2-3-9-10-8-4-1


? ? ? ? 層序遍歷:從層次遍歷

? ? ? ? ? ? 1-2-3-4-5-6-7-8-9-10


二叉樹不是樹的一種特殊情形,盡管其與樹有許多相似之處,但樹和二叉樹有兩個主要差別:

1. 樹中結點的最大度數沒有限制,而二叉樹結點的最大度數為2;

2. 樹的結點無左、右之分,而二叉樹的結點有左、右之分。

二叉樹并不是特殊的樹,而是一種獨立的數據結構


二叉樹

? ? 滿二叉樹:二叉樹上的所有結點都是充實的,飽滿的,沒有缺結點(完整的金字塔型);


? ? 完全二叉樹:把最后一層和前面若干層劃分開,假如一顆完全二叉樹有n層,前面的n-1層為滿樹,最后一層結點排列必須

? ? 要有規律,從左到右排列


? ? 非完全二叉樹:缺少結點,且排列無順序


? ? 二叉樹重要特征:


? ? ? ? 1.在二叉樹的第i層上最多有2^(i-1)個結點(i>=1);


? ? ? ? 2.深度為k的二叉樹最多有(2^k)-1個結點(k>=1);


? ? ? ? 3.對任何一棵二叉樹,如果其葉子結點數為n0,度為2的結點數為n2.則n0 = n2+1;

? ? ? ? ? ? 總結點數(n) = 總度數(k)+1? 同樣適用于二叉樹;


? ? ? ? 推導:

? ? ? ? =>? 設一棵二叉樹,它的葉子結點數n0個,度2的結點數n2,度1的結點數n1;

? ? ? ? 那么:? n1+n2+n0 = 所有結點的總數 = k+1;

? ? ? ? 然后:? k = n1*1+n2*2+n0*0;

? ? ? ? 可得:? n1+n2+n0 = n1+n2*2+1 => n0 = n2+1;

二叉樹特性:

? ? 如果對一棵有n個結點的完全二叉樹的結點按是層序編號(從第一層到 math.floor( log2^n )+1 層,每層從左到右 ),

? ? 則對任一結點i ( 1<=i<=n ),有

? ? ? ? 如果i=1,則結點i無父結點,是二叉樹的根,如果i>1,則父結點是 math.floor( i/2 );


? ? ? ? 如果2i>n,則結點i為葉子結點,無左子結點。否則,其左子結點是結點2i;


? ? ? ? 如果2i+1>n,則結點i無右子結點,否則,其右子結點是結點2i+1;


練習02


練習02

利用公式進行換算,并且要知道完全二叉樹度數為1的結點個數要么沒有(0),要么只有一個(1);

n1+n2+n0 = 總結點數;

因為:n0 = n2+1; ==> n2 = n0-1;

所以所得? ? n1 + 2n0 = 768

最后答案為B;

二叉樹的遍歷:


二叉樹的遍歷

? ? 前序遍歷:先訪問根,再一次訪問子結點;

? ? ? ? 1-2-4-5-7-8-3-6


? ? 中序遍歷:先訪問左結點,再訪問根結點,再訪問右結點;

? ? ? ? 4-2-7-8-5-1-3-6


? ? 后序遍歷:先訪問左結點,再訪問右結點,再訪問根結點;

? ? ? ? 4-8-7-5-6-2-3-1


? ? 層序遍歷:從層次遍歷;

? ? ? ? 1-2-3-4-5-6-7-8


練習03


練習03

答案:C

樹與二叉樹的轉換:


樹轉二叉樹

? ? 1.先把一棵樹的全部左子結點留下,右子結點線劃掉;


? ? 2.把兄弟結點連接起來,不同父結點的兄弟結點不需要連;


轉換后的二叉樹和之前的樹比較:

? ? 前序遍歷兩者相同

? ? 前序遍歷:1-2-3-5-6-7-4-8-9


? ? 二叉樹的中序遍歷 = 樹的后序遍歷

? ? 二叉樹的中序遍歷:2-5-6-7-3-8-9-4-1

? ? 樹的后序遍歷:2-5-6-7-3-8-9-4-1


最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,622評論 6 544
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,716評論 3 429
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 178,746評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,991評論 1 318
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,706評論 6 413
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 56,036評論 1 329
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 44,029評論 3 450
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 43,203評論 0 290
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,725評論 1 336
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,451評論 3 361
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,677評論 1 374
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,161評論 5 365
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,857評論 3 351
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,266評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,606評論 1 295
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,407評論 3 400
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,643評論 2 380