Я ищу встроенную реализацию двоичного дерева поиска в .NET 4. Есть ли она?
Вопрос
Есть ли реализация двоичного дерева поиска в .NET 4?
Ответы
Ответ 1 · рейтинг 7 · Henk Holterman
Класс SortedDictionary<K,V> использует дерево, это то, что вам нужно?
См. Этот ответ SO для обсуждения.
Ответ 2 · рейтинг 4 · Steve Townsend
Вы можете использовать SortedDictionary ‹TKey, TValue›
Ответ 3 · рейтинг 2 · pstrjds
Другой вариант - использовать список и отсортировать его. Затем вы можете использовать метод BinarySearch для поиска элементов. Чтобы поддерживать отсортированный список, вы можете использовать индекс, возвращаемый BinarySearch, для вставки в. Если возвращаемый индекс отрицательный, используйте дополнение (оператор ~) в качестве места вставки, если возвращенный индекс положительный, вы можете вставить в это место (если вы не хотите установить подобное поведение, и в этом случае не вставляйте вообще).
Ответ 4 · рейтинг 2 · QrystaL
Класс TreeDictionary реализует интерфейс ISortedDictionary и представляет словарь пар (ключ, значение) или записей с использованием упорядоченного сбалансированного двоичного дерева красного и черного цвета. Доступ к записи, удаление записи и вставка записи занимают время O (вход в систему). Перечисление ключей, значений или записей древовидного словаря следует за порядком ключей, определяемым компаратором ключей.
Ответ 5 · ros
http://code.google.com/p/self-balancing-avl-tree/. Сбалансированная реализация дерева AVL с операциями объединения и разделения, а также SortedDictinary и SortedMultiDictionary на основе дерева AVL.
Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.
Похожие материалы
- System.Globalization.Calendar.GetWeekOfYear() возвращает нечетные результаты
- Как ссылаться на сторонние сборки, не копируя их локально?
- Событие MouseMove в PictureBox запускается постоянно, даже если мышь не перемещается
- Добавление дополнительных атрибутов к каждому свойству класса
- Существует ли образец управляемого отладчика mdbg для .NET 4.0?
- Могу ли я разместить виртуальный каталог .net 2.0 на сайте asp.net 4.0?