栈:先入后出
百度百科:
栈(stack)又名堆栈,它是一种运算受限的线性表。限定仅在表尾进行插入和删除操作的线性表。这一端被称为栈顶,相对地,把另一端称为栈底。
向一个栈插入新元素又称作进栈、入栈或压栈,它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;从一个栈删除元素又称作出栈或退栈,它是
把栈顶元素删除掉,使其相邻的元素成为新的栈顶元素。
public class MyStack { private int size; private int[] arr; private int top; //栈的初始化 public MyStack(int size){ arr=new int[size]; this.size=size; top=-1; } //入栈 public void push(int n){ if(!isFull()){ arr[++top]=n; }else{ System.out.println("栈满--无法继续入栈!"); } } //出栈 / 获取栈顶元素 public int pop(){ if(isEmpty()){ System.out.println("栈空--栈内已无元素!"); return 0; } return arr[top--]; } //判断栈是否为空 public boolean isEmpty(){ return top==-1; } //判断栈是否已满 public boolean isFull(){ return top==(size-1); } //获取栈的长度 public int getStackLength(){ return top+1; } //销毁栈 public void stackDestroy(){ top=-1; } public static void main(String[] args) { MyStack myStack=new MyStack(5); int i=0; while(!myStack.isFull()){ myStack.push(i++); } while(!myStack.isEmpty()){ System.out.println(myStack.pop()); } } }