Red-Black Tree


紅黑樹

前段時間看到STL map使用的數(shù)據(jù)結構是紅黑樹,研究了一下。

紅黑樹的由來

紅黑樹是二叉查找樹的升級版本。二叉樹只是平均樹深為O(lg(n)),但是無法保證樹深h一定是O(lg(n))。這就是紅黑樹發(fā)明的原因。紅黑樹為每個node增加一個bit,為color:red or black。

紅黑樹的屬性

  1. 節(jié)點只有兩種顏色:黑的和紅的
  2. 根一定為黑色
  3. 葉節(jié)點(NIL)一定是黑的
  4. 紅節(jié)點的兩個孩子一定是黑的
  5. 每條到葉子節(jié)點的路徑,所經(jīng)過的黑色節(jié)點數(shù)(black height)一定都是相同的。

紅黑樹的深度

紅黑樹保證最大深度為2 lg(n+1),其中n為節(jié)點數(shù)。這吊炸天,二叉查找樹的最壞情況為O(n),而紅黑樹做到了O( lg n)。至今仍然無法從直觀上得到理解,只是加了顏色,即可獲得這么好的屬性,真是十分神奇。當然了,實現(xiàn)起來要麻煩很多了,INSERT和DELETE實現(xiàn)起來要比二叉查找樹難。

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

  • 樹(tree)的基本知識 一.定義 樹是一種抽象數(shù)據(jù)類型,或是實作這種抽象數(shù)據(jù)類型的數(shù)據(jù)結構,用來模擬具有樹狀結構...
    337b94dc718f閱讀 7,594評論 3 42
  • 1. 簡介 紅黑樹(Red Black Tree) 是一種自平衡二叉查找樹,是二叉查找樹的變種之一。它是在1972...
    謝樸歡閱讀 1,247評論 0 8
  • 1、紅黑樹介紹 紅黑樹又稱R-B Tree,全稱是Red-Black Tree,它是一種特殊的二叉查找樹,紅黑樹的...
    文哥的學習日記閱讀 10,153評論 1 35
  • 原文出處:http://www.cnblogs.com/maybe2030/p/4715035.html引文出處:...
    明教de教主閱讀 9,323評論 0 7
  • 你喜歡過一個人么?你分得清何為欣賞?何為好奇?何為不切實際么? 突然有一天你的生活里出現(xiàn)了那么一個男生,他高大,瀟...
    by_M閱讀 181評論 0 1

友情鏈接更多精彩內(nèi)容