樹及二叉樹的概念及知識點

2021-10-01 06:16:25 字數 2135 閱讀 8464

樹是一種非線性的資料結構,它是由n(n>=0)個有限結點組成乙個具有層次關係的集合。

把它叫做樹是因為它看 起來像一棵倒掛的樹,也就是說它是根朝上,而葉朝下的。

樹的特點:

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

沒有父結點的結點稱為根結點;每乙個非根結點有且只有乙個父結點;

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

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

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

葉子節點或終端節點:度為0的節點稱為葉節點; 如上圖:b、c、h、i…等節點為葉節點

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

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

根結點:一棵樹中,沒有雙親結點的結點;如上圖:a

節點的層次:從根開始定義起,根為第1層,根的子節點為第2層,以此類推;

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

非終端節點或分支節點:度不為0的節點; 如上圖:d、e、f、g…等節點為分支節點

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

堂兄弟節點:雙親在同一層的節點互為堂兄弟;如上圖:h、i互為兄弟節點

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

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

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

樹的子樹不相交

除了根節點外,每個節點有且僅有乙個父節點

一棵n個節點的樹有n-1條邊。

順序儲存:堆

用順序表儲存,一般為完全二叉樹,底層為陣列,與下標一一對應,不然會有記憶體的浪費

鏈式儲存:鍊錶

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

二叉樹的特點:

每個結點最多有兩棵子樹,即二叉樹不存在度大於 2 的結點。 2. 二叉樹的子樹有左右之分,其子樹的次序不能顛倒。

完全二叉樹:完全二叉樹是效率很高的資料結構,完全二叉樹是由滿二叉樹而引出來的。對於深度為k的,有n 個結點的二叉樹,當且僅當其每乙個結點都與深度為k的滿二叉樹中編號從1至n的結點一一對應時稱之為完全 二叉樹。 要注意的是滿二叉樹是一種特殊的完全二叉樹。

滿二叉樹:乙個二叉樹,如果每乙個層的結點數都達到最大值,則這個二叉樹就是滿二叉樹。也就是說,如果 乙個二叉樹的層數為k,且結點總數是(2^k) -1 ,則它就是滿二叉樹。

前序遍歷:根節點-左子樹-右子樹

中序遍歷:左子樹-根節點-右子樹

後序遍歷:左子樹-右子樹-根節點

遍歷上圖二叉樹

前序遍歷結果:a b d e h c f g

中序遍歷結果:d b e h a f c g

後序遍歷結果:d h e b f g c a

層序遍歷: 設二叉樹的根節點所在層數為1,層序遍歷就是從所在二叉樹的根節點出發,首先訪問第一層的樹根節點,然後從 左到右訪問第2層上的節點,接著是第三層的節點,以此類推,自上而下,自左至右逐層訪問樹的結點的過程就是 層序遍歷。

上圖二叉樹的層序遍歷結果:a b c d e f g h

和鍊錶類似,主要通過節點的組合來表示二叉樹

class node

node root = null;//表示樹的根節點

二叉樹知識點

樹是一種常用的非線性資料結構,用於描述分支 分層關係。一 基本概念 1 什麼是二叉樹?二叉樹是也是一種樹,乙個節點最多有兩個子樹結構。2 什麼是節點的度?節點的子樹個數,叫做節點的度,所以二叉樹節點的度最大為2。3 什麼是葉子節點?沒有子樹的節點叫葉子節點,葉子節點的度為0。4 什麼是節點的深度?節...

樹,二叉樹知識點總結

性質1 樹中的結點數等於所有結點的度數之和加1 性質2 度為m的樹中第i層上最多有m i 1個結點 i 1 性質3 高度h的m次樹最多有 m h 1 m 1 個結點 性質4 具有n個結點的m次樹的最小高度為logm n m 1 1 向上取整 1 樹的遍歷 先根遍歷 若樹不空,則先訪問根節點,然後依次...

二叉樹的概念及建立

一棵二叉樹是結點的乙個有限集合,該集合或者為空,或者是由乙個根節點加上兩棵分別稱為左子樹和右子樹的二叉樹組成。1.若規定根節點的層數為1,則一棵非空二叉樹的第i層上最多有2 i 1 i 0 個結點 2.若規定只有根節點的二叉樹的深度為1,則深度為k的二叉樹的最大結點數是2 k 1 k 0 3.對任何...