加權平衡樹

在計算機科學裏面 ， 加權平衡樹  是一種可以用來實現集合 、 字典 （ 映射 ） 和序列的平衡樹 。 這些樹結構在20世紀70年代被Nievergelt和Reingold作爲有界限的自平衡樹或BB [ α ] 樹提出 。 讓這些結構普及的是高德納 。 就像其他自平衡樹一樣 ， 加權平衡樹儲存的賬簿信息可以在樹結構被插入和刪除操作打亂時 ， 通過平衡結點和操作樹旋轉來使樹結構重新達到平衡 。 特別的地方是 ， 加權平衡樹的每個結點儲存這個結點下子樹的大小 ， 並且這個結點左右子樹的大小保持着某種內在聯繫 。 不同於AVL樹 （ 儲存子樹的高度 ） 和紅黑樹 （ 儲存虛構的 “ 顏色 ” 位 ） ， 加權平衡樹儲存記賬信息的方式是對應用真正有用的屬性 ： 一棵樹下元素的數量等於它的根的大小 ， 然而這個根的大小是一個用來實現順序統計樹操作的有用數據 ， 也就是說 ， 可以得到一個大小爲的集合下的最大元素或者決定一個順序結構下一個元素的索引 。 加權平衡樹在函數程式語言社區下面非常受歡迎以及被用來實現MIT Scheme的集合和映射結構還有Haskell語言的實現 。