樹刷題題後感——相對來說概念和公式數量可以和數論比較

程序计算机人發表於2024-05-14

  在刷題的時候因為概念太多了越刷越懵所以先整理一下。

  題目來源:牛客網專項練習牛客網專項練習_校招題庫練習題_行測題庫考點考題 (nowcoder.com)

  

  樹:

    參考連結:如何理解資料結構中樹的度(樹的度是什麼意思)?-CSDN部落格  

 

    (他這裡打的“節點數“是指節點,,意思就是上圖表示的,但是我節點和結點是混淆的,我看到也有人混淆用了(目移))

    關於樹、森林、二叉樹之間的轉換:二叉樹與樹、森林之間的轉換_二叉樹轉化為森林-CSDN部落格 規則是對的,只是該連結作者圖有的配錯了。

(來自牛客網使用者NII)

    邏輯結構是資料元素之間的關係,儲存結構是資料元素及其關係在計算機中的儲存方式。
    儲存結構有順序、鏈式、索引、雜湊四種,邏輯結構有線性和非線性結構。
    二叉樹是邏輯結構,樹屬於邏輯結構中的非線性結構。
    雙向連結串列、雜湊表、迴圈佇列都是儲存結構分別屬於鏈式、雜湊和順序。邏輯結構是資料元素之間的關係,儲存結構是資料元素及其關係在計算機中的儲存方式。
    儲存結構有順序、鏈式、索引、雜湊四種,邏輯結構有線性和非線性結構。
    二叉樹是邏輯結構,樹屬於邏輯結構中的非線性結構。
    雙向連結串列、雜湊表、迴圈佇列都是儲存結構分別屬於鏈式、雜湊和順序。
    樹只是表現資料的層次關係,不是一種儲存結構,通常使用連結串列來儲存樹結構

  二叉樹:

    二叉樹的基本性質:對於任何一棵二叉樹,如果葉子結點個數為N0,度為2的結點個數為N2,則必然存在關係N0 = N2+1。

    二叉樹共有N個節點,求葉子節點數?N為偶數,葉子節點為N/2;N為奇數,葉子節點為N/2+1

    關於非空二叉樹中“n=n0+n1+n2=2*n2+n1+1=總度數+1“那些事-CSDN部落格
    上面的連結講到了幾個公式: n = n0+n1+n2 = 總度數+1 = 2n2+n1+1,總度樹是所有結點度數之和。
    n表示樹的結點個數,n0表示度為0的結點的個數,n1表示度為1的結點的個數,n2表示度為2的結點的個數。
 

  樹的遍歷順序:

    參考連結:前序、中序、後續遍歷二叉樹 - 知乎 (zhihu.com)

    前序遍歷:根左右。

    中序遍歷:左根右。

    後序遍歷:左右根。

    (記憶捷徑是將“根”一直向右邊擠,根左右,左根右,左右根)

    相關圖片我就不放了,對我來說只有這個順序值得記。

  平衡二叉樹:

    參考連結:平衡二叉樹(AVL)插入結點後的再平衡思路_avl樹再平衡的方法-CSDN部落格  

    簡而言之,平衡二叉樹是二叉搜尋樹的一個特例,節點的平衡因子是左右子樹的高度差,所有節點的平衡因子均小於等於1則這顆樹就是平衡二叉樹。被破壞平衡的節點最近也是插入節點的爺爺結點。不可能找到插入節點使得父結點不平衡的情況。當插入了節點導致不平衡後可以透過節點的旋轉使得樹再平衡。二叉搜尋樹中節點的旋轉不會破壞二叉搜尋樹的規則。

    然後就是如何命名不平衡樹的?左左(LL)型意思是從插入結點開始,需要往左上走兩次才能到不平衡節點,其他同理。

    旋轉的方法在原連結有說。以下的圖片中x是不平衡節點。

  完全二叉樹:

    參考連結:常見資料結構——完全二叉樹(定義、特徵、節點個數的判斷以及C++簡單實現)-CSDN部落格

    完全二叉樹是由滿二叉樹而引出來的,若設二叉樹的深度為h除第 h 層外其它各層 (1~h-1) 的結點數都達到最大個數(即1~h-1層為一個滿二叉樹),第 h 層所有的結點都連續集中在最左邊,這就是完全二叉樹。

    完全二叉樹,有左子樹不一定有右子樹,有右子樹一定有左子樹,葉子節點只能出現在倒數第一和倒數第二層,適合於順序結構儲存。

    完全二叉樹中,度數為0的節點個數比度數為2的節點個數多1,且度數為1的節點個數是1或0,可以結合二叉樹的三個節點公式(二叉樹那裡講了)

    

    在連結中解釋了完全二叉樹的k(深度)的取值範圍,嗯,牛客網有人給出了更好的公式。具有n個結點的完全二叉樹(包括滿二叉樹)的高度為【log2 n】+1 或者(【log2 (n+1 )】)【log2 n】+1中的【】是向下取整,【log2 (n+1 )】中的【】是向上取整

    

  哈夫曼樹:

    參考連結:超好理解的哈夫曼樹(最優二叉樹)與例題_哈夫曼樹的構造例題-CSDN部落格

    雖然有人說這篇部落格的哈夫曼樹建錯了,但是我看不出來(我覺得蠻對的),不過原理是正確的。

    哈夫曼樹又被稱為二叉最優樹。

    Huffman 樹的帶權路徑長度WPL等於 各葉子結點的帶權路徑長度之和

    哈夫曼樹是一種特殊的完全二叉樹。所以完全二叉樹的公式都可使用。 

  二叉搜尋樹:

    二叉排序樹,也稱二叉搜尋樹,特點是 左子樹的節點值 < 根節點值 < 右子樹的節點值。所以最小值的左子樹為空。注意,由於樹其實是遞迴結構(),所以這裡的規則同樣也適用子樹。

    參考連結:資料結構——二叉搜尋樹詳解-CSDN部落格

  線索二叉樹:

    參考連結:線索二叉樹(圖解+完整程式碼)-CSDN部落格

(來自牛客網使用者 ryanxw)

  B樹:(老朋友了)

    參考連結:圖解B樹的原理及操作_b樹原理詳解-CSDN部落格

  (以下來自牛客網使用者 ICANTHEARYOU)

  一道雜題:(寫這道題目的時候腦袋空空的隨便選了一個)

  to be continue.

相關文章