2

私は自分のBツリーと2-3-4ツリー(順序4のBツリー)でブラッシュアップを行ってきましたが、これをC#で実装しようとしています。あなたへの私の質問は、BツリーノードがN-1個のアイテムとN個のサブツリーを含むことができるとすると、これらのノードの1つの典型的な表現は何ですか?それは配列、一連のリンクリスト、または私が考慮していないものですか?

4

3 に答える 3

2

2-3-4ツリーの場合、それは実際には重要ではありません。大量注文の場合は、並べ替えられた配列とバイナリ検索を使用します。文字列のような可変サイズのキーの場合、トライは良い考えかもしれません。

于 2010-02-07T22:13:39.927 に答える
1

サブツリーとアイテムを組み合わせようとしないでください。2つの配列またはList<> が必要になります。

順序が決まっている場合は、2つの配列を使用します。それ以外の場合、aList<ItemClass>とaList<SubTree>

于 2010-02-08T12:01:56.600 に答える
0

これは、C#でのバイナリ検索ツリーの作成に関するMSDNの興味深い記事です。Bツリーとまったく同じではありませんが、便利な場合があります。この場合の作成者は、ジェネリックコレクション基本クラスを使用します。

public class Node<T>
{
   private T data;
   private NodeList<T> neighbors = null;
   ...
}

public class NodeList<T> : Collection<Node<T>> { ... }
于 2010-02-07T22:21:25.843 に答える