树的简单知识
樹的定義
樹是一種非線性的數據結構
樹由唯一的根和若干互不相交的子樹組成
每一棵子樹又是一棵樹,也是由由唯一的根和若干互不相交的子樹組成
樹的結點為0時稱為空樹。
樹適合表示:元素之間具有分支層次關系的數據
樹的相關術語
| 結點 | 結點不僅包括數據元素,而且包含指向子樹 分支 | |
| 結點的度 | 子樹個數,分支個數 | |
| 樹的度 | 結點的度的最大值 | |
| 葉子結點 | 度=0的結點 | |
| 非終端結點 | ==分支結點, | |
| 祖先 | 包括結點的父親,祖父,曾祖父 | ?e.g. |
| 子孫 | 包括結點的兒子,孫子 | ?e.g. |
| 層次 | 根為第一層,根的孩子為第二層 | |
| 樹的高度/深度 | 最大層次 | |
| 根節點的高度 | ==樹的高度 | |
| 結點深度 | 根節點到該結點的結點個數(包括該節點本身 | ?e.g. |
| 結點高度 | 該結點到葉子結點最長路徑的結點個數(包括該節點本身 | ?e.g. |
| 有序樹 | 子樹從左到右時有次序的,不能交換 | |
| 無序樹 | ||
| 豐滿樹 | 理想平衡樹,除最底層之外,其他層都是滿的 | |
| 森林 | 若干互不相交的樹的集合 |
二,樹的存儲結構
| 樹的順序存儲結構 | 雙親表示法 | 一維數組 ?int tree [maxSize] 數組下標表示樹中結點 i 數組元素表示結點的雙親結點? tree [i] | 書P135 | 用于克魯斯卡爾算法 |
| 樹的鏈式存儲結構 | 孩子表示法 | 鄰接表存儲結構 | ||
| 孩子兄弟表示法 |
三,二叉樹
Binary Tree是n個節點的有限集合
由一個根節點和兩棵互不相交的,分別稱為根節點的左子樹和右子樹的二叉樹組成
空集(空二叉樹)
1.每個節點最多有2棵子樹,節點的度:0,1,2
2.左子樹和右子樹是有順序的,不可以顛倒
即使只有一棵子樹,也要分辨是左子樹還是右子樹
滿二叉樹:
所有分支節點都存在左子樹和右子樹,
所有葉子都在最下一層
1.葉子只能出現在最下一層
2.非葉子節點的度只能是2
3.同樣深度的二叉樹中,滿二叉樹的節點個數一定最多
葉子也最多
完全二叉樹
完全二叉樹是滿二叉樹的生成樹
滿二叉一定是完全二叉
完全二叉不一定是滿二叉
1.葉子節點只能出現在最下兩層
2.最下層的葉子集中在左邊連續位置
3.倒數第二次如果有葉子節點,一定在右側連續位置
4.如果節點度為1,該節點只有左子樹,
5.同樣節點樹的二叉樹,完全二叉樹的深度最小
?
總結
- 上一篇: 弹性盒子中百分比高度的计算规则
- 下一篇: 小程序的登录页面与个人中心页面的交互