簡體   English   中英

AVL樹實現的新功能

[英]New to AVL tree implementation

我正在編寫一種滑動窗口壓縮算法(LZ77),該算法在“移動”詞典中搜索短語。

到目前為止,我已經編寫了一個BST,其中每個節點都存儲在一個數組中,並且它在數組中的索引也是窗口本身中起始位置的值。

我現在正在考慮將BST轉換為AVL樹。 我對看到的示例實現有些困惑。 一些僅顯示存儲平衡因子,而其他一些存儲每棵樹的高度。

存儲每個節點的高度和/或平衡因子是否有任何性能優勢/劣勢? 抱歉,這是一個非常簡單的問題,但我仍然無法想象要如何重組BST以實現高度平衡。

謝謝。

平衡只是兩個高度之間的差異,因此,除非整數減法的執行速度非常慢,否則不應有任何明顯的性能差異。 ;)如果僅將高度存儲為int而不將它們都壓縮為一個int,則存儲高度可能需要更多的內存,您可以放心地這樣做,因為天平保證了最大高度的實際限制。 但是過早的優化,您知道...隨着高度的增加,當您只有可用的天平時,您將需要使用其他子樹遍歷來計算更多的信息,但這取決於您的要求。

我建議深入研究Ben Pfaff對BST的出色介紹: http : //www.stanford.edu/~blp/avl/libavl.html/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM