2010-10-12 51 views

回答

7

SortedDictionary<K,V>類使用樹,那是你在做什麼?

查看此SO answer進行討論。

2

另一種選擇是使用列表和排序。然後,您可以使用BinarySearch方法查找項目。要維護已排序的列表,您可以使用BinarySearch返回的索引來插入。如果返回的索引是負數,則使用補碼(〜運算符)作爲插入位置,如果返回的索引是正數,則可以在該位置插入(除非您想設置類似行爲,在這種情況下根本不插入)。

+1

這提供了相同的搜索語義,但底層結構仍然是普通的舊List,而不是BST。 – 2010-10-12 15:42:17

+0

良好的電話,沒有想到當我發佈的時候(當時只有1杯咖啡)。我使用帶有BinarySearch和補充索引插入的List來獲取BST搜索語義。我應該仔細閱讀:) – pstrjds 2010-10-12 16:47:39

2
C5 library

類TreeDictionary實現接口ISortedDictionary和表示 (鍵,值)對,或條目,使用有序均衡redblack 二叉樹的字典。條目訪問,條目刪除和條目插入花費時間O(logn)。 枚舉樹形詞典的鍵,值或條目的操作遵循鍵關鍵字 (由鍵盤比較器確定)。