樹以及二叉樹

2021-09-23 15:39:53 字數 1442 閱讀 9822

樹是一種非線性的資料結構, 它是由n(n>=0)個有限結點組成乙個具有層次關係的集合. 把它叫做樹是因為它看起來像一棵倒掛的樹, 也就是說它是根朝下, 而葉朝上的.

每個結點有零個或多個子節點

沒有父節點的結點稱為根節點

每個非根節點有且只有乙個父節點

除了根節點外, 每個子節點可以分為多個不相交的子樹

節點的度: 乙個節點含有的子樹的個數稱為該節點的度; 如a的度為6

葉節點(終端節點): 度為0的節點稱為葉節點; 如b, c, h, i....等節點為葉節點

分支節點(非終端節點): 度不為0的節點; 如d, e, f, g....等節點為分支節點

父節點(雙親節點): 若乙個節點含有子節點, 則這個節點稱為其子節點的父節點; 如a是b的父節點

子節點(孩子節點): 乙個節點含有的子樹的根節點稱為該節點的子節點; 如b是a的子節點

兄弟節點: 具有相同父節點的節點互稱為兄弟節點; 如b, c是兄弟節點

樹的度: 一棵樹中, 最大的節點的度稱為樹的度; 如上圖樹的度為6

節點的層次: 從根開始定義起, 根為第一層, 根的子節點為第二層,由此類推

樹的高度(深度): 樹中節點的最大層次; 上圖樹的高度為4

堂兄弟節點: 雙親在同一層的節點互稱為堂兄弟; 如h, i互為堂兄弟節點

節點的祖先: 從根到該節點所經分支上的所有節點; 如a是所有節點的祖先

子孫: 以某節點為根的子樹中任一節點都是該節點的子孫; 上圖所有節點都是a的子孫

森林: 有m(m>=0)棵互不相交的樹的集合稱為森林

struct node ;
struct node ;
struct node ;
一棵二叉樹是節點的乙個有限集合, 該集合或者為空, 或者是由乙個根節點加上兩棵別稱為左子樹和右子樹的二叉樹組成

每個結點最多有兩棵子樹, 即二叉樹不存在度大於2的節點

二叉樹的子樹有左右之分, 其子樹的次序不能顛倒

滿二叉樹: 乙個二叉樹, 如果每一層的節點數都達到了最大值, 則這個二叉樹就是滿二叉樹

完全二叉樹: 對於深度為k, 有n個節點的二叉樹, 當且僅當其每乙個節點都與深度為k的滿二叉樹中 編號從1至n的節點一一對應時稱為完全二叉樹. (滿二叉樹是一種特殊的完全二叉樹)

順序結構儲存就是使用陣列來儲存, 一般使用陣列只適合表示完全二叉樹, 因為不是完全二叉樹會有空間的浪費. 二叉樹的順序儲存在物理上是乙個陣列, 在邏輯上是一棵二叉樹

二叉樹的鏈式儲存結構是指, 用鍊錶來表示一棵二叉樹, 即用鏈來指示元素的邏輯關係. 通常的方法是鍊錶中每乙個節點有三個域組成, 資料域和左右指標域, 左右指標分別用來給出該節點左孩子和右孩子所在的鏈節點的儲存位址.

樹 二叉樹 滿二叉樹 完全二叉樹 完滿二叉樹

目錄名稱作用根 樹的頂端結點 孩子當遠離根 root 的時候,直接連線到另外乙個結點的結點被稱之為孩子 child 雙親相應地,另外乙個結點稱為孩子 child 的雙親 parent 兄弟具有同乙個雙親 parent 的孩子 child 之間互稱為兄弟 sibling 祖先結點的祖先 ancesto...

二叉樹 二叉樹

題目描述 如上所示,由正整數1,2,3 組成了一顆特殊二叉樹。我們已知這個二叉樹的最後乙個結點是n。現在的問題是,結點m所在的子樹中一共包括多少個結點。比如,n 12,m 3那麼上圖中的結點13,14,15以及後面的結點都是不存在的,結點m所在子樹中包括的結點有3,6,7,12,因此結點m的所在子樹...

二叉樹,完全二叉樹,滿二叉樹

二叉樹 是n n 0 個結點的有限集合,它或者是空樹 n 0 或者是由乙個根結點及兩顆互不相交的 分別稱為左子樹和右子樹的二叉樹所組成。滿二叉樹 一顆深度為k且有2 k 1個結點的二叉樹稱為滿二叉樹。說明 除葉子結點外的所有結點均有兩個子結點。所有葉子結點必須在同一層上。完全二叉樹 若設二叉樹的深度...