前面已經說到,二叉樹使用及其廣泛,現在就來說一下:
在這裡先進行宣告:這裡所有樹的結點完全沒有指向父親結點的指標,唐老師沒有指名原因,但是他後面的一句話,感覺應該是他的原因,那就是做出二叉樹,也是為了節省空間,所以就沒有在樹節點裡包含指向父親結點的指標。
首先是二叉樹的定義:二叉樹是由 n 個結點組成的有限集合 ,該集合或者為空 ,或者是由乙個根結點加上兩棵分別稱為左子樹和右子樹的互不相交的二叉樹組成。
然後二叉樹又分為:滿二叉樹和完全二叉樹;
滿二叉樹:如果二叉樹中所有分支結點的度數都為2 ,且葉子結點都在同一層次上 ,則稱這類二叉樹為滿二叉樹;
完全二叉樹:如果一棵具有n個結點的高度為k的二叉樹,它的每乙個結點都與高度為k 的滿二叉樹中編號為1 —n 的結點一一對應,則稱這棵二叉樹為完全二叉樹。(從上到下從左到右編號)
有一些常識一定要記住,因為一些公司經常會考這些題目:
1:同樣結點數的二叉樹,完全二叉樹的高度最低;
2:在二叉樹的第i層最多有
3:深度為k的二叉樹最多有
4:對任何一棵二叉樹,如果其葉結點有n0個,度為2的非葉結點有n2個,則有n0 = n2 +1;
唐老師資料結構專題八3
關於二叉樹的建立 這裡有個問題,就是二叉樹,就不能想1中講的那樣,建立兩個鍊錶,乙個孩子鍊錶,乙個組織鍊錶,因為二叉樹的孩子是分左右的,這個順序不能搞混,所以就直接是在每個二叉樹的結點中設定兩個指標,分別指向左右孩子,這樣就可以了,但是又有乙個問題隨之而來,那就是如何定位?這個問題唐老師給了乙個很形...
唐老師 資料結構 專題五
這個專題講的內容是遞迴,並且這節的 量都不是很大,關鍵就是遞迴的思想,對於可以用遞迴去完成的任務,應該運用整體的思想,不用把每一步都想得很清楚,並且一定要有最後的結束判斷 對 還有個重要內容就是唐老師講到了計算機在函式與函式呼叫的時候,要利用棧,而這個棧是類似於我們之前用到的順序棧,就是一開始就已經...
唐老師資料結構 專題四的筆記
首先是寫棧的習慣 一定要在建立完棧後 就立即寫上銷毀棧的函式 否則很容易遺忘銷毀 導致記憶體洩露 在唐老師講的符號配對檢測的程式時 有乙個小細節 老師並沒有提出來 但是後來發現了 char c char linkstack pop stack 進行檢測 格外注意 一定要先c null if c nu...