.NET Встроенное AVL-дерево? - PullRequest
7 голосов
/ 07 января 2012

Есть ли в библиотеках .NET встроенное дерево AVL?

Я искал, но не нашел.

  • Если есть, то где?какое пространство имен?
  • Если нет, есть ли хорошая реализация для деревьев AVL в C #?
  • Если также нет!тогда есть ли простой способ сделать это?Я знаю, как это работает, и уже построил один на нативном C ++, но сейчас у меня нет времени и я боюсь плохой производительности, если сам это сделаю.

Ответы [ 3 ]

9 голосов
/ 07 января 2012

Вы можете использовать System.Collections.Generic.SortedSet<T>. Я думаю, что это реализовано с использованием красно-черного дерева, которое очень похоже на дерево AVL.

3 голосов
/ 07 января 2012

Быстрый поиск нашел реализацию здесь . Код выглядит чистым, но я не пробовал.

Если ничего другого, вы можете провести быстрый тест производительности против SortedSet<T> (как предложено @Josef), чтобы увидеть, есть ли какая-либо разница для вашего варианта использования.

0 голосов
/ 13 июля 2012

можно найти реализацию C # @ http://code.google.com/p/self-balancing-avl-tree/.также выполняются операции concat и split.

...