Binary Search Tree で小さな Java 作業を行っていますが、ノードの再帰的な挿入をツリーに実装して表示すると、何も得られません。私はしばらくそれを続けてきましたが、確かなことはわかりませんが、参照渡しの問題だと思います。
これが私のコードです:
public class BST {
private BSTNode root;
public BST() {
root = null;
}
public BSTNode getRoot() {
return root;
}
public void insertR( BSTNode root, Comparable elem ) {
if ( root == null ) {
root = new BSTNode( elem );
}
else {
if ( elem.compareTo( root.element ) < 0 ) {
insertR( root.left, elem );
} else {
insertR( root.right, elem );
}
}
}
public void printInOrder (BSTNode root) {
if (root != null) {
printInOrder(root.left);
System.out.println(root.element);
printInOrder(root.right);
}
}
}
class BSTNode {
protected Comparable element;
protected BSTNode left;
protected BSTNode right;
protected BSTNode ( Comparable elem ) {
element = elem;
left = null;
right = null;
}
}
ルートが挿入先のノードであり、elem が文字列である一連の insertR を実行しましたが、ツリーがまったく入力されていないかのように、何も出力されません。再帰挿入に問題があると確信していますが、どこにあるのかわかりません。不可能だと思われるものを何も返さない再帰挿入メソッドを使用する必要があります。
どんな助けでも素晴らしいでしょう。