.NET ライブラリに組み込みの AVL ツリーはありますか?
私は検索しましたが、何も見つかりませんでした。
- あるとすれば、どこに?何の名前空間?
- そうでない場合、C# での AVL ツリーの適切な実装はありますか?
- そうでない場合も!それを成し遂げる簡単な方法はありますか?私はそれがどのように機能するかを知っており、以前にネイティブ C++ で作成したことがありますが、今は時間がなく、自分で作成するとパフォーマンスが低下するのではないかと心配しています。
.NET ライブラリに組み込みの AVL ツリーはありますか?
私は検索しましたが、何も見つかりませんでした。
を使用できますSystem.Collections.Generic.SortedSet<T>
。AVL ツリーに非常によく似た赤黒ツリーを使用して実装されていると思います。
クイック検索で実装が見つかりましたhere。コードはきれいに見えますが、試していません。
他に何もない場合は、SortedSet<T>
(@Josef によって提案されているように) に対する簡単なパフォーマンス テストを実行して、ユース ケースに違いがあるかどうかを確認できます。
C# の実装は、@ http://code.google.com/p/self-balancing-avl-tree/で見つけることができます。連結操作と分割操作も実装されています。