树的预备知识
【0】README
0.1) 本文總結(jié)于 數(shù)據(jù)結(jié)構(gòu)與算法分析,旨在整理出 樹的相關(guān)術(shù)語和概念(哥子始終記不住樹的高度和深度,記著記著就混淆了,哎,所以分享出來);
【1】樹相關(guān)
1.1)定義樹的一種自然方式是遞歸的方法;
1.2)樹定義:一棵樹是一些節(jié)點的集合, 這個集合可以是空集;若非空, 則一棵樹由稱作 根(root)的節(jié)點r 以及0個或多個非空的子樹組成;(樹中還有樹, 這本就是一個遞歸的定義)
1.3)兒子+父親:一個子樹的根 叫做 根r 的 兒子, 而r 是每一顆子樹的根的 父親;
1.4)樹的性質(zhì):
- 1.4.1)樹的根結(jié)點沒有前驅(qū)結(jié)點,除根結(jié)點之外的所有結(jié)點有且只有一個前驅(qū)結(jié)點;
- 1.4.2)樹中所有結(jié)點可以有零個或多個后繼結(jié)點;
【2】下面理一理樹中各種元素概念:
2.1)樹葉:沒有兒子的節(jié)點;
2.2)兄弟:具有相同父親的節(jié)點;
2.3)路徑:它是 從節(jié)點n1 到 nk 的路徑定義為 節(jié)點n1、n2、……、nk 的一個序列, 使得 ni 是 n(i+1) 的父親;
2.4)路徑長度: 路徑的長就是該路徑上的邊的條數(shù);
2.5)節(jié)點ni 的深度: 根 到 ni 的唯一的路徑長度;
2.6)節(jié)點ni 的高度: ni 到 葉子節(jié)點 的最長的路徑長度;
2.7)祖先+后裔:如果存在 n1 到 n2 的一條路徑,那么 n1 是 n2 的一位祖先,而 n2 是 n1 的一個后裔;
【3】樹的實現(xiàn)
Attention)兒子兄弟表示法
如下圖所示:向下的箭頭(左指針)指向第一個兒子節(jié)點, 從左到右的箭頭(右指針)指向下一個兄弟節(jié)點;(間接說明了樹的節(jié)點有兩個指針)
樹節(jié)點定義代碼如下:
總結(jié)
- 上一篇: 马良怎么死的 马良的死因
- 下一篇: 不相交集ADT(联机算法 + 脱机算法)