.NETライブラリにはAVLツリーが組み込まれていますか?.NET内蔵のAVLツリー?
私は検索しましたが、何も見つかりませんでした。
- ある場合は、どこですか?どのような名前空間ですか?
- もしそうでなければ、C#でAVLツリーを実装する方法はありますか?
- もしそうでなければ!それを簡単に行う方法はありますか?私はそれがどのように動作し、以前はネイティブC++でビルドしていたのか知っていますが、今は時間がなくなり、自分でやるとパフォーマンスが悪くなるのを恐れています。
.NETライブラリにはAVLツリーが組み込まれていますか?.NET内蔵のAVLツリー?
私は検索しましたが、何も見つかりませんでした。
System.Collections.Generic.SortedSet<T>
を使用できます。 AVLツリーにはvery similarの赤黒のツリーを使って実装されていると思います。
クイック検索で実装が見つかりましたhere。コードはきれいに見えるが、私はそれを試していない。
他に何もない場合は、SortedSet<T>
(@Josefの提案による)のパフォーマンステストを実行して、ユースケースに違いがあるかどうかを確認できます。
C#の実装は、@http://code.google.com/p/self-balancing-avl-tree/で見つけることができます。連結および分割操作も実装されています。
達成しようとしていることは何ですか?おそらく、あなたのニーズに合った組み込み型があります。 – Oded
バランスの取れた階層が必要です。普通のバイナリツリーはバランスが取れていないため、あまりフィットしません。どんな提案も大歓迎です:) –
データ構造で_do_に何をしようとしているのか説明していません。構造。より高いレベルの要件を与えることはより有益です。 – Oded