まず、二分探索木のノードを表すクラスを作成します。ノードは、値を格納する変数と左右の子ノードへの参照を持つ必要があります。以下に、Nodeクラスの例を示します。
class Node {
int value;
Node left;
Node right;
public Node(int value) {
this.value = value;
this.left = null;
this.right = null;
}
}
次に、二分探索木クラスを作成し、ノードの挿入メソッドを実装します。挿入メソッドは、新しいノードを適切な位置に挿入する役割を持ちます。以下に、BinarySearchTreeクラスの例を示します。
class BinarySearchTree {
Node root;
public BinarySearchTree() {
this.root = null;
}
public void insert(int value) {
this.root = insertNode(this.root, value);
}
private Node insertNode(Node root, int value) {
if (root == null) {
return new Node(value);
}
if (value < root.value) {
root.left = insertNode(root.left, value);
} else if (value > root.value) {
root.right = insertNode(root.right, value);
}
return root;
}
}
上記の例では、ノードの挿入メソッドは再帰的に呼び出されます。挿入する値が現在のノードの値よりも小さい場合は、左のサブツリーに挿入されます。挿入する値が現在のノードの値よりも大きい場合は、右のサブツリーに挿入されます。挿入操作は、適切な位置が見つかるまで再帰的に行われます。
以下に、ノードの挿入例を示します。
BinarySearchTree bst = new BinarySearchTree();
bst.insert(5);
bst.insert(3);
bst.insert(7);
bst.insert(1);
bst.insert(4);
bst.insert(6);
bst.insert(8);
上記の例では、値5を持つノードがルートに挿入され、それに続いて3、7、1、4、6、8の値を持つノードが挿入されます。
このようにして、Javaで二分探索木にノードを挿入する方法を実装することができます。