植物大战 二叉树 概念——C
“人生如夢,一樽還酹江月”
猛戳訂閱🍁🍁 👉 純C詳解數據結構專欄 👈 🍁🍁
這里是目錄
- 普通樹的概念
- 樹的特點
- 樹的術語
- 普通樹的表示
- 二叉樹概念
- 二叉樹的性質
- 數組二叉樹
- 鏈式二叉樹
- 學鏈式二叉樹的什么內容?
- 二叉樹的遍歷
- 前序遍歷
- 中序遍歷
- 后序遍歷
- 層序遍歷
普通樹的概念
樹由 根 和 n 棵子樹組成,樹是非線性數據結構。樹是遞歸定義的,這點很重要。
樹的特點
1.樹的子樹是不相交的。
2.除了根節點外,每個結點有且僅有一個父節點。
3.一棵N個節點的樹有N-1條邊。
樹的術語
以下加粗的為重點
樹的度:一棵樹中,最大的節點的度稱為樹的度
節點的層次:從根開始定義起,根為第一層,根的子節點為第二層。
數的高度或深度:樹中節點的最大層次。
節點的度:一個節點含有的子樹的個數成為該節點的度。
葉節點或終端節點:度為0的節點稱為葉節點;
雙親節點或父節點:若一個節點含有子節點,則這個節點稱為其子節點的父節點。
孩子節點或子節點:一個節點含有的子樹的根節點稱為該節點的子節點。
兄弟節點:具有相同父節點點節點稱為兄弟節點。親兄弟才是兄弟節點。
堂兄弟節點:雙親在同一層的節點護衛堂兄弟。
節點的祖先:從根到該節點所經分支上的所有節點。
子孫:以某節點為根的子樹中任一節點都稱為該節點的子孫。
森林:有m(m > 0)棵互不相交的數的集合稱為森林。
普通樹的表示
來看看先輩們創造的優秀智慧。
存儲樹最優秀的結構:孩子兄弟表示法。
即:一個節點有多少個孩子都無所謂。父親指向第一個孩子,剩下的孩子,用孩子的兄弟指針連接起來。
二叉樹概念
二叉樹是我們要研究的重點。
二叉樹:一棵二叉樹是結點的一個有限集合。
該集合有兩種情況。
1.為空樹
2.由一個根節點加上兩棵別稱為左子樹和右子樹的二叉樹組成
二叉樹的特點:
1.二叉樹的度最大為2,即最多只有兩顆子樹。
2.二叉樹的子樹有有左右之分,次序不能顛倒,因此二叉樹是有序樹。
注意:因為二叉樹是遞歸定義的。
對于任意的二叉樹都是由以下幾種情況復合而成的
二叉樹的性質
二叉樹的性質是建立在兩種特殊的二叉樹上研究的。
1.滿二叉樹:每一層的結點數都達到了最大值。
2.完全二叉樹:前k-1層都是滿的,最后一層不滿,但是最后一層從左往右是連續的。
性質1:若規定根節點的層數為1,則一棵非空二叉樹的第h層上最多有 2h-1個結點.
性質2:若規定根節點的層數為1,則深度為h的二叉樹的最大結點數是 2h-1 .
解釋:根據等比數列前n項的和來看,n層相加得到2h-1 。
性質3:對任何一棵二叉樹, 如果度為0其葉結點個數為n0 , 度為2的分支結點個數為n2 ,則有 n0=n2 +1
性質4:若規定根節點的層數為1,具有n個結點的滿二叉樹的深度,h= log2(n+1).
解釋:這是對2h-1 = n公式的轉換。
性質5:對于具有n個結點的完全二叉樹,如果按照從上至下從左至右的數組順序對所有節點從0開始編號,則對
于下標為i的結點有以下解釋:
1.i位置節點的雙親下標:(i-1)/2
2.左孩子下標:2i+1
3.右孩子下標:2i+2
如圖。
數組二叉樹
上一章的堆,已經敘述。
順序結構存儲就是使用數組來存儲,一般使用數組只適合表示完全二叉樹,因為不是完全二叉樹會有空間的浪費。而現實中使用中只有堆才會使用數組來存儲。二叉樹順序存儲在物理上是一個數組,在邏輯上是一顆二叉樹。
鏈式二叉樹
學鏈式二叉樹的什么內容?
普通二叉樹增刪查改沒有價值,如果是為了單純存放數據,不如用線性表。我們現在學習二叉樹,1.是為了更好的控制他的結構,為后續學習復雜的搜索二叉樹打基礎
包括平衡搜索二叉樹:AVL數、紅黑樹。學習搜索二叉樹的意義在于可以用于搜索.
2.很多二叉樹OJ算法題,都出在普通二叉樹上。
二叉樹的遍歷
二叉樹是遞歸實現的
思想:
- 當你看到一棵樹就要有一個思想,要把樹看成遞歸的,這點很重要。
- 任何一棵樹都要分為根,左子樹,右子樹。并且左右子樹到空才算結束。
- 遞歸就是大問題分成小問題,一直分解,直到不可分割后,就結束遞歸了。
前序遍歷
也叫先根遍歷,遍歷方式是, 根,左子樹,右子樹,根可以直接遍歷,左子樹和右子樹不可以直接遍歷,左子樹還會繼續分為根, 左子樹, 右子樹。
1 2 3 null null null 4 5 null null 6 null null
中序遍歷
也叫中根遍歷,遍歷方式是:左子樹, 根, 右子樹
null 3 null 2 null 1 null 5 null 4 null 6 null
后序遍歷
遍歷方式為:左子樹, 右子樹, 根
null null 3 null 2 null null 5 null null 6 4 1
層序遍歷
最簡單的遍歷,就是一層一層的遍歷。
1 2 4 3 5 6
總結
以上是生活随笔為你收集整理的植物大战 二叉树 概念——C的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如何在html中制作个人简历表单
- 下一篇: 国产FlexRay系列产品即将上市,值得