栈的介绍:
- 1.栈的英文是(stack)
- 2.栈是一个先进后出的有序列表
- 3.栈是限制线性表中元素的插入和删除只能在线性表的同一端进行的一种特殊线性表。允许插入和删除的一端,为变化的一端,称为栈顶,另一端为固定的一端,称为栈底
- 4.根据栈的定义可知,最先放入栈中元素在栈底,最后放入元素在栈顶,而删除元素刚好相反,最先放入的元素最后删除
使用数组模拟栈:
class ArrayStack{
private int maxSize;
private int[] stack;
private int top=-1;
public ArrayStack(int maxSize){
this.maxSize=maxSize;
stack=new int[this.maxSize];
}
public boolean isFull(){
return top==(maxSize-1);
}
public boolean isEmpty(){
return top==-1;
}
public void push(int value){
if(isFull()){
System.out.println("栈满");
return;
}
top++;
stack[top]=value;
}
public int pop(){
if (isEmpty()){
throw new RuntimeException("栈空");
}
int value=stack[top];
top--;
return value;
}
public void list(){
if(isEmpty()){
System.out.println("没有数据");
}
for (int i=top;i>=0;i--){
System.out.println("第"+(i+1)+"个值为"+stack[i]);
}
}
}