堆栈实现期间的java.lang.ArrayIndexOutOfBoundsException

时间:2017-06-02 15:31:46

标签: java data-structures stack

我正在尝试实现堆栈但遇到此错误。我无法理解为什么我得到这个因为我定义了一个数组的大小。 我的错误: java.lang.ArrayIndexOutOfBoundsException

// jQuery Validator method for required not blank.
$.validator.addMethod('requiredNotBlank', function(value, element) {
    return $.validator.methods.required.call(this, $.trim(value), element);
}, $.validator.messages.required);

// ...
$('#requiredNotBlankField').rules('add', 'requiredNotBlank');

我调用push操作的方法。

ReverseStack(int n){
        top = - 1;
        size = n;
        a = new char[size];

    }
    boolean push(char c){
        if(top >=size ){
            System.out.println("Stack overflow");
            return false;
        }else{
            a[top++] = c;
            return true;
        }
    }
    char pop(){
        if(top<0){
            System.out.println("Stack underflow");
            return 0;
        }else{
            char c = a[top--];
            return c;
        }
    }

有人可以帮助我。任何代码更改或新技术都必须适用。

1 个答案:

答案 0 :(得分:4)

您将属性top作为-1

开始

构造函数

1- top = 0;

{p> 2 in pushpop方法使用++top--top

请参阅How do the post increment (i++) and pre increment (++i) operators work in Java?了解有关差异的更多信息