二叉查找樹、平衡二叉樹和紅黑樹


首先說一下,凡是每個節點最多只有兩個子節點的樹都叫二叉樹。

二叉查找樹

二叉查找樹,也稱二叉搜索樹,或二叉排序樹。其定義也比較簡單,要么是一顆空樹,要么就是具有如下性質的二叉樹:

(1)若任意節點的左子樹不空,則左子樹上所有結點的值均小於它的根結點的值;

(2) 若任意節點的右子樹不空,則右子樹上所有結點的值均大於它的根結點的值;

(3) 任意節點的左、右子樹也分別為二叉查找樹;

(4) 沒有鍵值相等的節點。

平衡二叉樹(AVL二叉樹)

​  平衡二叉搜索樹,又被稱為AVL樹,且具有以下性質:它是一棵空樹或它的左右兩個子樹的高度差的絕對值不超過1,並且左右兩個子樹都是一棵平衡二叉樹。

紅黑樹

一種二叉查找樹,但在每個節點增加一個存儲位表示節點的顏色,可以是紅或黑(非紅即黑)。通過對任何一條從根到葉子的路徑上各個節點着色的方式的限制,紅黑樹確保沒有一條路徑會比其它路徑長出兩倍,因此,紅黑樹是一種弱平衡二叉樹(由於是弱平衡,可以看到,在相同的節點情況下,AVL樹的高度低於紅黑樹),相對於要求嚴格的AVL樹來說,它的旋轉次數少,所以對於搜索,插入,刪除操作較多的情況下,我們就用紅黑樹。

Attention:

  • 平衡樹(AVL)是為了解決 二叉查找樹(BST)退化為鏈表的情況。
  • 紅黑樹(RBT)是為了解決 平衡樹 在刪除等操作需要頻繁調整的情況

參考:https://www.liangzl.com/get-article-detail-136354.htmlhttps://blog.csdn.net/qq_25940921/article/details/82183093https://www.jianshu.com/p/d25e490e2441


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM