樹 二叉樹 堆

2021-09-10 16:43:31 字數 619 閱讀 2552

樹:樹是乙個無向無環圖,n個節點正好有n-1條邊,再任意加上一條邊就可以構成迴路。

乙個結點的上乙個結點是這個結點父結點,這個節點是子結點,並且父結點和子結點是相對的。特別的,如果乙個結點沒有父結點,那這個結點是根節點;乙個結點沒有子結點,它是葉節點。

二叉樹:如果乙個樹除了葉結點之外的其他每個結點都不多於兩個子結點,那麼這個樹叫二叉樹。

它有幾個特點:如果乙個結點是i,那麼它的左子結點是2i,它的右子結點是2i+1。

從根結點為第一層,依次向下第二層、第三層…

滿二叉樹和完全二叉樹:如果除了葉結點外其他每個結點都有兩個子節點,這個樹就叫滿二叉樹。如果只有最右邊幾個結點有缺少外其他的節點都有兩個子節點(如果乙個結點存在右子結點,那就一定有左子結點的情況),它就叫完全二叉樹。

最大堆與最小堆:如果乙個完全二叉樹中任意父結點都比子結點存的數的數值小,這個完全二叉樹又叫最小堆,此時這組資料的最小的數就在根節點上。反之,如果任意父結點都比子結點存的數的數值大,它就叫最大堆,此時最大的數在根節點上。

樹3 1 二叉樹 堆

一 堆的性質 結構性 用陣列表示的完全二叉樹 有序性 任意一結點的關鍵字是其子樹所有結點的最大值 或最小值 二 最大堆的操作 1 建立乙個空的最大堆,堆從下標為1的地方開始存放 根結點下標為1 2 最大堆的插入 首先,把要插入的結點放在陣列的末尾,假設下標為h size 1 再將它與父結點比較,如果...

樹 二叉樹 滿二叉樹 完全二叉樹 堆 概念彙總

樹 乙個擁有n 個節點和n 1 條邊的乙個有向無環圖。二叉樹 每個節點最多有兩個子樹的樹結構。滿二叉樹 除最後一層無任何子節點外,每一層上的所有結點都有兩個子結點的二叉樹。完全二叉樹 由滿二叉樹而引出 二叉樹的深度為h,除第 h 層外,其它各層 1 h 1 的結點數都達到最大個數 滿二叉 樹 第 h...

二叉堆(完全二叉樹)

最小堆的實現 最小堆是一顆完全二叉樹 這裡用陣列實現完全二叉樹 index 0 1 2 3 4 5 6 value 空 a b c d 任意index,其父親為index 2,左兒子為2 index,右兒子為2 index 1 時間複雜度 o logn include includeusing na...