栈(stack)是限制插入和删除只能在一个位置上进行的表,该位置是表的末端,叫做栈的顶(top),相对地,把另一端称为栈底。对栈的基本操作有push(进栈)和pop(出栈),前者相当于插入,后者则是删除最后插入的元素。由于堆叠数据结构只允许在一端进行操作,因而按照后进先出(LIFO, Last In First Out)的原理运作。栈也称为后进先出表。
其实现代码如下:
public class myStack {
private int[] array;
private int maxSize;
private int top;
//栈构造函数
public myStack(int size){
this.maxSize = size;
array = new int[size];
top = -1;
}
//从栈顶压入数据
public void push(int value){
if(top < maxSize-1){
array[++top] = value;
}
}
//弹出栈顶数据
public int pop(){
return array[top--];
}
//访问栈顶数据
public int peek(){
return array[top];
}
//判断栈是否为空
public boolean isEmpty(){
return (top == -1);
}
//判断栈是否满了
public boolean isFull(){
return (top == maxSize-1);
}
}
测试程序如下:
public static void TestStack(){
myStack stack=new myStack(100);
System.out.println(stack.isEmpty());
stack.push(1);
stack.push(2);
System.out.println(stack.pop());
System.out.println(stack.peek());
System.out.println(stack.isFull());
}