まず、ツリーノードを表すクラスを作成します。ツリーノードは、値と左右の子ノードへの参照を持ちます。
class TreeNode {
int value;
TreeNode left;
TreeNode right;
public TreeNode(int value) {
this.value = value;
this.left = null;
this.right = null;
}
}
次に、バイナリツリーを操作するためのメソッドを実装します。
- ツリーにノードを挿入する方法:
public TreeNode insert(TreeNode root, int value) {
if (root == null) {
return new TreeNode(value);
}
if (value < root.value) {
root.left = insert(root.left, value);
} else if (value > root.value) {
root.right = insert(root.right, value);
}
return root;
}
- ツリー内の値を検索する方法:
public boolean search(TreeNode root, int value) {
if (root == null) {
return false;
}
if (value == root.value) {
return true;
} else if (value < root.value) {
return search(root.left, value);
} else {
return search(root.right, value);
}
}
- ツリーを先行順でトラバースする方法:
public void preOrderTraversal(TreeNode root) {
if (root != null) {
System.out.print(root.value + " ");
preOrderTraversal(root.left);
preOrderTraversal(root.right);
}
}
これらのメソッドを使用して、バイナリツリーを操作することができます。以下は、例としてバイナリツリーを作成し、操作するコードの一部です。
public static void main(String[] args) {
TreeNode root = null;
BinaryTree binaryTree = new BinaryTree();
root = binaryTree.insert(root, 50);
binaryTree.insert(root, 30);
binaryTree.insert(root, 20);
binaryTree.insert(root, 40);
binaryTree.insert(root, 70);
binaryTree.insert(root, 60);
binaryTree.insert(root, 80);
System.out.println("先行順でトラバース:");
binaryTree.preOrderTraversal(root);
System.out.println("\n値の検索:");
System.out.println(binaryTree.search(root, 40)); // true
System.out.println(binaryTree.search(root, 90)); // false
}
以上が、Javaでツリーノードを使用してバイナリツリーを実装する方法の一例です。これらのコード例を参考にして、バイナリツリーをさまざまな方法で使用することができます。