これは私のデータ構造クラスの宿題用であり、Javaで作成されています。
私はこの小さなゲームを一種のものにしなければなりません。ワールドはグラフで構成されており、一部のノードにはアイテムが保持されており、見つかった場合は、バイナリ検索ツリーであるユーザーのインベントリに追加されます。(それは二分探索木でなければなりません、さもなければこれははるかに簡単でしょう。)私はそれのほとんどを理解しました、しかし私はユーザーが在庫ツリーのものの内容を見てそしてアクセスできるようにする必要があります。私が提供するバイナリツリーノードクラスには、inorderPrint()
再帰を使用してすべてを出力するメソッドがありますが、これはコンテンツを表示するのに役立つだけであり、簡単にアクセスする方法はありません。二分探索木のノードの配列を返すメソッドが欲しいので、メインでこのようなことを行うことができます...
int i = 0;
int choice;
System.out.println("# - Item\tPoints"); //Will appear as # - Item Points
for (BTNode node : inventory.treeAsArray()) {
System.out.printf("%d - %s\t%d\n", i, node.getData().getName(),
node.getData().getPoints()); //example: 1 - Poo 100
i++;
}
System.out.println("Select the number of the item you want to remove: ");
choice = keyboard.nextInt();
次に、配列をもう一度ループして、ユーザーが入力した番号に対応する項目を削除します。ただし、バイナリ検索ツリーの内容を配列の形式で返すメソッドを作成する方法はわかりません。それが私の主な問題です。教科書でそのアルゴリズムを見つけることができません。