0

我有 AVLNode 和 AVLTree 类,我有删除和插入节点的方法,我有一个打印方法。我想使用这些方法来创建 AVL 树。在输入时,我想写“添加 x”和“删除 x”。我写了这个但是当我打印什么都没有显示

 public static void main(String[] args) throws IOException {
    int i;
    BufferedReader scanner = new BufferedReader(new InputStreamReader(System.in));
    int n = Integer.parseInt(scanner.readLine());
    String[] words = new String[n];
    AVLTree<Integer> t = new AVLTree<Integer>();

    for (i = 0; i < n; i++) {
        String splitn = scanner.readLine();
        words[i] = (splitn.split(" ")[0]);
        int M = Integer.parseInt(splitn.split(" ")[1]);
        if (words[i] == "Add") {
            t.insert(M);
        }
        if (words[i] == "Remove") {
            t.remove(M);
        }

    }
    t.print();

}
4

1 回答 1

2

改变:

if (words[i] == "Add")

到:

if (words[i].equals("Add"))

同样的"Remove"情况。该equals方法将逐个字符地比较字符串,但==操作符只是检查两个字符串是否是内存中的同一个对象。因此,没有打印的原因是首先没有添加或删除任何内容!

于 2013-03-31T18:26:03.640 回答