packagecom.ffyc.stack;/**
* 创建一个栈结构(使用数组实现)
*/publicclassArrayStack{privateint maxSize;//栈的大小(也就是底层数组的大小)privateint top =-1;//栈顶指针初始化为-1privateint[] stack;//创建一个数组表示栈publicArrayStack(){//默认创建大小为10的栈this.maxSize =10;this.stack =newint[maxSize];}publicArrayStack(int maxSize){this.maxSize = maxSize;this.stack =newint[maxSize];}//判断栈是否满的方法publicbooleanisFull(){return top == maxSize -1;}//判断栈空的方法publicbooleanisEmpty(){return top ==-1;}//入栈操作(push)publicvoidpush(int value){//判断栈是否已满if(isFull()){System.out.println("栈已满,无法添加元素!");return;}
top +=1;
stack[top]= value;}//出栈操作(pop)publicintpop(){//判断栈是否为空if(isEmpty()){//抛出一个异常thrownewRuntimeException("栈空,没有数据~~~");}int value = stack[top];
top -=1;return value;}//遍历栈操作publicvoidlist(){//判断栈是否为空if(isEmpty()){System.out.println("栈为空~~");return;}//这里我们可以使用for循环遍历,也可以使用while循环遍历,注意: 遍历的过程中top指针一定不可以变,我们只是遍历,而不是清空栈for(int i = top; i >=0; i--){System.out.printf("stack[%d] = %d\n",i,stack[i]);}}}