之前面试的时候,有过面试官让手写数组实现栈,特记录如下:
public class ArrayStack {
private int maxCount;//最大容量
private int topPoint=-1;//栈顶指针
private int[] stack;//数组来存放数据
public ArrayStack(int count){
maxCount=count;
//初始化数组
stack=new int[maxCount];
}
public boolean isEmpty(){
//栈顶指针为-1 代表当前栈还没有存入元素
return topPoint==-1;
}
public boolean isFull(){
//当栈顶指针等于栈的最大容量-1时 代表栈的容量满了
return topPoint==maxCount-1;
}
/**
* 入栈的方法
* @param element
*/
public void push(int element){
if(isFull()){
return;
}
topPoint++;
stack[topPoint]=element;
}
public int pop(){
//验证是否可以取出元素
if(isEmpty()){
throw new RuntimeException("栈空了");
}
//取出栈顶元素
int value=stack[topPoint];
//栈顶指针向下移动
topPoint--;
return value;
}
}
网友评论