私の仕事はランダムに生成されたキー(0-14012891)を挿入する手順を示すことです。値が小さい場合は左に挿入し、値が大きい場合は右に挿入します。これは私が今まで持っていたものであり、私は非常に固執しています。どんな種類のヘルプ/ポインタも非常に高く評価されます。また、ルート14012891がランダムに生成された新しい番号が追加された後、私もこれを取り除くのですか?ありがとうございました!バイナリ検索ツリー再帰的エラーと操作のトレース
だから、Node root;
public void addNode(int key, String name) {
Node newNode = new Node(key, name);
if(root == null) {
root = newNode;
} else {
Node focusNode = root;
Node parent;
while(true) {
parent = focusNode;
if(key < focusNode.key) {
focusNode = focusNode.leftChild;
if(focusNode == null) {
parent.leftChild = newNode;
return;
}
else {
focusNode = focusNode.rightChild;
if (focusNode == null) {
parent.rightChild = newNode;
return;
}
}
}
}
}
}
public void preOrderTraverseTree(Node focusNode) {
if (focusNode!=null) {
System.out.println(focusNode);
preOrderTraverseTree(focusNode.leftChild);
preOrderTraverseTree(focusNode.rightChild);
}
}
public static void main (String[] args) {
Random rand = new Random();
for (int j = 0; j<10; j++)
{
int pick = rand.nextInt(100);
CourseWork2 newTree = new CourseWork2();
newTree.addNode(14012891," Root ");
newTree.addNode(pick, "");
newTree.preOrderTraverseTree(newTree.root);
}
}
public class Node {
int key;
String name;
Node leftChild;
Node rightChild;
Node(int key, String name) {
this.key = key;
this.name = name;
}
public String toString() {
return name + " " + key;
}
}
}