0

二分木のノードを処理する必要がありますが、それを入力として渡す方法がわかりません。私がツリーを持っているとしましょう:

     11
    12 13
   14 15 16
  17 18 19 20

次に、ジェネリッククラスがありますNode<T>

public class Node<T>
    {
        public T Value { get; set; }

        public List<Node<T>> Children { get; set; }

        public bool HasChild { get; set; }

        public bool HasParent { get; set; }

        public Node(T value)
        {
            this.Value = value;
            this.Children = new List<Node<T>>();
        }
    } 

各ノードをノードのリスト (子) に追加する必要がありますが、どのような順序でツリーの階層を維持するのでしょうか?

4

4 に答える 4

0

Preorder/Inorder/Postorder など、入力する注文を最初に選択する選択肢をユーザーに提供します。そして、それに応じて入力を処理します。あなたがそれをコーディングできることを願っています。

于 2013-06-03T16:48:55.187 に答える
0

このようなもの

              public static void Main()
              {
               Node root = new Node(50);
               BinaryTree BT = new BinaryTree(root);
               Node left = new Node(17);
               Node right = new Node(76);
               root.left = left;
               root.right = right;
               Node lleft = new Node(9);
               Node lright = new Node(23);
               Node rleft = new Node(54);
               root.left.left = lleft;
               root.left.right = lright;
               root.right.left = rleft;
               Node llright = new Node(14);
               Node llrleft = new Node(12);
               root.left.left.right = llright;
               root.left.left.right.left = llrleft;
               Node lrright = new Node(19);
               root.left.right.left = lrright;
               Node rlright = new Node(72);
               Node rlrleft = new Node(67);
               root.right.left.right = rlright;
               root.right.left.right.left = rlrleft;

                      }
于 2013-07-12T20:15:19.063 に答える
0

入力の最初の行で 2 つの整数を指定できます。たとえば、「n」は節点の数、「m」は弧の数です。次に、「n」行にノードの識別子を指定し、その後「m」行にアークを指定します。

識別子を解析すると、Node オブジェクトを作成できます。アークを渡すと、子を適切に追加できます。

グラフは次のようになります。

10 12
11
12
13
14
15
16
17
18
19
20
11 12
11 13
12 14
12 15
13 15
13 16
14 17
14 18
15 18
15 19
16 19
16 20

このようにして、アークと与えられた順序を忘れます。親を持たない唯一のノードになるため、後でヘッドを特定できます。

于 2013-06-04T11:38:14.180 に答える