Java基礎 二叉樹

2021-08-21 09:25:12 字數 969 閱讀 1696

樹 : n(n>0)個結點的有限集合。有且僅有乙個根結點。

根結點:一棵樹中沒有父結點的結點。

葉子結點(終端結點):一棵樹中沒有子結點。

兄弟結點:同乙個父結點的所有結點。

結點度(分支度):每乙個所擁有結點的個數。

樹的度(樹的分支度):一棵樹中最大的結點。

祖先:由某個結點x到根結點之路徑上的所有結點,均為x結點的祖先。

二叉樹(二次樹或二分樹):結點最多只有兩個。

二叉樹要滿足的條件:①有且僅有稱為根的結點。

②其餘結點分為兩個互不相交的集合,稱為左子樹和右子樹。

在二叉樹中,第i層的結點總數不超過2^(i-1);

滿二叉樹:樹中所有結點均在同一階層而其他非終端結點度均為「2」,樹的高度為k,其結點為2^k - 1;

完全二叉樹:若設二叉樹的高度為h,除第 h 層外,其它各層 (1~h-1) 的結點數都達到最大個數,第 h 層有葉子結點,並且葉子結點都是從左到右依次排布。

一棵樹如果是滿二叉樹,那麼它一定是完全二叉樹,一棵樹如果是完全二叉樹,它不一定是滿二叉樹。

(小左大右)

二叉樹的遍歷:①先序:根 左 右 若二叉樹非空,則訪問根結點,按先序遍歷左子樹,再遍歷右子樹。

②中序:左 根 右 若二叉樹非空,按中序遍歷左子樹,再訪問根結點,再按中序遍歷右子樹。

③後序:左 右 根 若二叉樹非空,按後序遍歷左子樹,再遍歷右子樹,再訪問根結點。

二叉樹的刪除:①無左無右:分為: 根結點 非根結點,但是是葉子結點(分為:左葉子 右葉子)

②有左無右:分為: 根結點 非根結點(分為:左結點 右結點)

③有右無左:分為: 根結點 非根結點(分為:左結點 右結點)

④有左有右:分為: 根結點 非根結點(分為:左結點 右結點)(判斷是要上移左結點的最右邊或右結點的最左邊)

二叉樹基礎

二叉樹 二叉樹是一棵特殊的樹,二叉樹每個節點最多有兩個孩子結點,分別稱為左孩子和右孩子。二叉樹節點結構 二叉樹的建立 node createtree const t a,size t size,size t index,const t invilid return root 返回根節點 前序遍歷 前...

二叉樹基礎

最近學習的一些筆記,記錄一下 樹是一種非線性結構,樹 這種資料結構真的很像我們現實生活中的 樹 這裡面每個元素我們叫 節點 例如下面這幅圖,a 節點就是 b 節點的父節點,b 節點是 a 節點的子節點。b c d 這三個節點的父節點是同乙個節點,所以它們之間互稱為兄弟節點。我們把沒有父節點的節點叫作...

二叉樹基礎

1.二叉樹的定義 每個結點最多只有兩棵子樹 子樹左右有順序之分 2.常見的二叉樹型別 滿二叉樹 看起來 完美 而又 平衡 的樹 完全二叉樹 首先從上至下,從左至右按順序給結點編號,再從下至上,從右至左按順序刪除結點。由此可見滿二叉樹是一棵特殊的完全二叉樹,而完全二叉樹是 缺胳膊少腿 的滿二叉樹。3....