我試圖解決一個練習,結果有點困難,因爲我必須實現從樹的一個模板類(一種紅黑色或二進制搜索樹)開始的優先級隊列。樹和優先級隊列
使用它看起來像
class Node
int key
Node left
Node right
Node parent
int leftNodes
int rightNodes
最初模板,當我不得不插入一個新元素我試圖填充樹的完全的水平,然後使用InOrderTreeTRaversal /排序算法填充陣列,並且生成一個來自該數組的BinarySearch樹,並用新的根元素替換原始元素。假設有一棵平衡的樹。
不幸的是,因爲樹必須效仿保持平衡樹,每次插入/缺失maxheap財產(和我的代碼沒有完全中填充樹級別不錯的選擇)此方法似乎不合適。有可能實現具有Heap功能的Tree?我的意思是每個元素都是大於或等於它的子元素的樹,在插入後保持平衡並在根節點(較大的關鍵元素)被刪除時具有自動平衡功能?
[紅黑樹](http://en.wikipedia.org/wiki/Red%E2%80%93black_tree)是你在找什麼。 –
使用RedBlack Tree可以在樹上使用按值排序的元素?在添加或刪除導致混亂的樹時反轉結構。我需要在根級別和級別級別節點上的最大元素小於或等於其父級。 – Daved