【算法简述】:主要定义数组和top指针,确定好异常和边界情形。
主体实现:
import java.lang.reflect.Array;
public class stackByArray {
private Integer[] arr;
private Integer index;
public stackByArray(int initSize){
if (initSize<0){
throw new IllegalArgumentException("初始化参数小于0");
}
arr = new Integer[initSize];
index = 0;
}
public Integer peek(){
if (index == 0){
return null;
}
return arr[index -1 ];
}
public Integer pop(){
//当栈空时,出栈报错
if(index == 0){
throw new IllegalArgumentException("栈为空");
}
return arr[--index];
}
public void push(Integer num){
//当栈满,不能入栈
if(index == arr.length){
throw new IllegalArgumentException("栈已满");
}
arr[index++] = num;
}
public boolean isEmpty(){
return index == 0 ? true : false;
}
}
测试类:
public class StackByArrayTest {
public static void main(String[] args){
int[] arr = new int[]{3,4,6,9,7};
stackByArray stack = new stackByArray(10);
stack.push(3);
stack.push(4);
stack.push(6);
stack.push(9);
stack.push(7);
System.out.println(stack.peek());
while(!stack.isEmpty()){
System.out.print(stack.pop());
}
System.out.println(stack.pop());
}
}