2017-04-17 20 views
2

我試圖解決萬阿英,蔣達清第k值最大的種種疑問的規定:使支持數據結構:數據結構網絡化用於獲取

1)添加元素與密鑰K

2)刪除與密鑰k元

3)打印數據結構第k最大元素

我認爲maxheap應該工作,但在這種情況下,我們需要刪除堆前k-1最大的價值,以獲得第k個最大的元素,所以它贏得在這裏工作。

我該如何解決這個問題?

+0

你可能想要一個(平衡的)二叉搜索樹:http://stackoverflow.com/questions/2329171/find-kth-smallest-element-in-a-binary-search-tree-in-optimum-way/ 2329236#2329236 – IVlad

+0

[以最佳方式在二叉查找樹中查找第k個最小元素]的可能重複(http://stackoverflow.com/questions/2329171/find-kth-smallest-element-in-a-binary-search-樹在優路) – gsamaras

回答

1

你可以用一個order statistic tree來解決這個問題,它是一個(平衡)二叉樹,可以讓你在log(n)時間內用平衡樹找到第i個最小(或最大)元素。