關於資料結構

2021-08-15 00:19:56 字數 934 閱讀 4794

定義,性點

二叉樹是一種樹形結構,其特點是每個結點至多只有兩顆子樹,並且二叉樹的子樹有左右之分。

非空二叉樹葉子結點數等於度為2的結點的個數加1,即n0 = n2 + 1

非空二叉樹上第k層上至多有2^(k-1)個結點。

高度為h的二叉樹至多有2^h - 1個結點

樹的最大度為2

樹的高度:從所有葉節點開始數高度到根節點,其中的最大值;也就是從結點x向下到某個葉結點最長簡單路徑中邊的條數。(從下往上數)

樹的深度:是從根節點往下數

找出二叉樹中兩個節點最遠的距離 (最遠兩個節點的距離)

一:情況之一是根結點有左右子樹

(既然是最遠,兩個節點肯定是位於根結點的左右,左右之分。

兩個節點肯定是葉子節點。

兩個節點肯定是位於各自當前子樹(相對於根結點)最大深度)

二:情況之二是根結點只有乙個子樹

(最遠的距離就在根節點的其中乙個子樹上的兩個葉子結點。)

距離最遠的兩點必然在以某個節點a為根的子樹上,它們間的路徑必然經過該子樹的根節點a。

因而,以任意乙個節點b為根的子樹,計算出經過該子樹根節點b的最大距離,則所有最大距離的最大值就是所要求的二叉樹的最大距離,即「樹的直徑」。

而經過樹的根節點的最大距離為:左子樹的高度+右子樹的高度+2(假設空節點的高度為-1),因而,原問題等同於「計算每個節點的左子樹和右子樹的高度和,取最大值」。

計算二叉樹中兩個節點最遠的距離 (其實也就是求左子樹的最大高度,到根節點(也就是加一),然後求右子樹的最大高度,到根節點(也就是加一),總結來說。就是根結點的左,右子樹的最大高度 加2)

求二叉樹的深度

二叉樹的深度:它等於左子樹和右子樹中的最大深度加 1 (有兩個過程,求左子樹的深度,(非整棵樹的深度),以及右子樹的深度(非整棵樹的深度),然後,加上根結點(也就是加一))

類似過程可

關於資料結構 一

資料儲存 的目的是便於資料訪問,這個關係就是資料結構 演算法 是計算機解題的模型 輸入,輸出,順序執行,跳轉,迴圈,分支,有限步驟 人大腦組織資料的方式有線,樹,圖三種邏輯結構,而計算機儲存採用順序,鏈式和兩者混合的方式。前者是概念性的東西,後者是物理實現。線形結構 演算法是迭代演算法,你只要注意規...

資料結構 關於樹

在理解完全二叉樹之前,首先要弄清楚完全二叉樹和滿二叉樹的區別。1.什麼是滿二叉樹?1 滿二叉樹所有分支節點都有左孩子節點和右孩子節點 只有度為0和度為2的節點 2 滿二叉樹的所有葉子節點都在最下一層。2.什麼是完全二叉樹?1 葉子節點只在層次最大的兩層出現 2 最下面一層的葉子節點都依次排列在該層最...

關於資料結構(二)

接著上,關於資料結構,在實際的開發中或多或少都有涉及到,只是看自己平時沒有積累到。下面是我在專案中的幾個例項 有六個大的ui部分,每乙個大部分裡面還有具體的條目,當然不管是大條目還是點選進去後的子條目在頂部都會有乙個 back 返回 按鈕,點選後可以返回上一次所在的ui 點選返回,回到上一次所在的u...