我已经写了一个二进制搜索,但是有一些错误

unguejic  于 2021-07-07  发布在  Java
关注(0)|答案(1)|浏览(303)

这个问题在这里已经有答案了

是什么导致java.lang.arrayindexoutofboundsexception以及如何防止它(26个答案)
上个月关门了。
我用post-order写了一个二叉树,但是我得到了一些错误信息。。

public static void main(String [] args) {
    int input;
    Scanner sc = new Scanner(System.in);
    System.out.print("Enter the number of the data: ");
    input = sc.nextInt();
    int[] data;

    data = new int[input];
    BSTree tree = new BSTree();
    System.out.println("Enter the values: ");
        for (int i = 0; i < input; i++) {
            data[i] = sc.nextInt();
        }
            System.out.print(data + " ");
            tree.insert(data[input]);
        System.out.println();

        System.out.println("It used preorder.");
        System.out.println("BinarySearchTree - size: " + tree.size() + " height: " + tree.height());
        tree.postorder();   // left right root

我现在可以储存5个号码了。但现在我无法显示我插入的数据和后订单,发生了什么?

public static void main(String [] args) {
int input;
Scanner sc = new Scanner(System.in);
System.out.print("Enter the number of the data: ");
input = sc.nextInt();

int[] data = new int[input];
BSTree tree = new BSTree();
System.out.println("Enter the values: ");
    for (int i = 0; i < data.length; i++) {
        data[i] = sc.nextInt();
    }
        System.out.print(data + " ");
        tree.insert(input);

    System.out.println("It used preorder.");
    System.out.println("BinarySearchTree - size: " + tree.size() + " height: " + tree.height());
    tree.postorder();

我更喜欢显示插入:33 44 22 11 23邮购:
现在表演

Enter the number of the data: 5
Enter the values:
32
23
13
12
4
[I@5b6f7412 It used preorder.
BinarySearchTree - size: 1 height: 0
5
6psbrbz9

6psbrbz91#

这是个错误。

tree.insert(data[input]);

例如,如果输入为5,则

data = new int[input];

创建一个包含5个元素的数组,最后一个索引为4。所以数据[5]会抛出这样的异常。
p、 在你的截图中有一个错误的行号=)

相关问题