樹的高度和深度

2021-09-26 19:20:17 字數 833 閱讀 7600

樹的高度和深度

深度定義是從上往下的,高度定義是從下往上的。(其實不用在意這個,反正樹的深度高度怎麼數都一樣的)。

深度和高度涉及到結點的層數,有的教材規定根結點在第0層,有的則規定根結點在第1層。原理都是一樣的,因教材而異。

樹從根結點開始往下數,葉子結點所在的最大層數稱為 樹的深度。

有的教材對於樹的高度定義是高度就是深度(層數是0123,深度=高度=3;層數是1234,深度=高度=4);而有的教材樹的高度則是看一共有幾層。也就是說不論根節點在第幾層,樹的深度都是和最大層的葉子節點一樣。而樹的高度只要看有幾層就行了(0123是四層,1234也是四層)。

總之在我看來:

有兩種說法:

高度就是深度

看層數:

如果根結點第0,層數=深度=高度-1

如果根結點第1,層數=深度=高度

舉個栗子_(:3 」∠ )_:

圖 左 右

層數 從第0層開始 從第1層開始

最大層數 4 5

深度 4 5

高度(高度=深度) 4 5

高度(數層數) 5 5

補充:但是在清華大學 鄧俊輝資料結構書中如下:

這本書中可以看出數高度時候葉子結點是從0開始的,因此空數高度-1,只有乙個根節點高度0。

結點的高度和深度

結點的深度也是從根結點開始數,是第幾層也決定於根結點在第0層還是第1層。根結點的高度則取決於它的子樹,該節點子樹中最遠的那個葉子結點作為1開始數。

例如對於bcd三個點:

b的子樹是c和d,數b的高度時候,b的子樹中離b最遠的葉子節點是g,所以g高度為1,b高度4,d高度3。但是c是葉子節點,c沒有真子樹,c高度就是1。

樹的高度和深度

用到樹的資料結構時,經常會考慮樹的高度和深度,但是lz總是搞混了,總雖然比較簡單,就是個定義,記住就行了,但是因為長時間總是弄錯,所以寫一篇博文,加深一下印象 1 樹的深度 樹的深度可以這樣理解,計算乙個節點的深度,從根節點算起 記住從1開始計數,而不是0,程式設計師的通病在這不好使 到該節點所經過...

樹的高度 深度 層數

可能是全網最透徹的講解樹的基本概念的一篇文章了。對於很多朋友來說,特別是半路出家轉碼農的朋友來說,資料結構是最薄弱的一項了,線性表和鍊錶還好理解 如果鍊錶不懂的見我的另一篇文章一到樹就完全懵逼了,甚至看不懂別的發的部落格。大部分原因是不知道有關樹的基本概念。這裡總結出來,熟練背誦即可。先說節點 對於...

關於樹的深度和高度的計算

關於樹的深度和高度的計算,我看到兩個不同的說法,它們的區別就在於到底是從0開始計算還是從1開始計算。網上的和演算法題偏向說法二,如果有能找到更加權威的解答望不吝賜教 說法一 資料結構與演算法分析 c語言描述 第2版中的第4.1節中 說法二 來自 樹的高度和深度的區別 k節點在樹的底層,是乙個葉子節點...