栈的实现
1 定义
栈(stack)又名堆栈,它是一种运算受限的线性表。限定仅在表尾进行插入和删除操作的线性表。这一端被称为栈顶,相对地,把另一端称为栈底。向一个栈插入新元素又称作进栈、入栈或压栈,它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;从一个栈删除元素又称作出栈或退栈,它是把栈顶元素删除掉,使其相邻的元素成为新的栈顶元素。
类似于一个狭窄的山洞,只有一个出口,所以谁后进来谁就可以先出去
2 基本操作和元素
入栈(PUSH)
出栈(POP)
栈顶元素 top
3 实现一个栈
public class Stack<E> {
private E[] stackArray;
private int maxSize;
private int top;
@SuppressWarnings("unchecked")
public Stack(int maxSize) {
this.stackArray = (E[]) new Object[maxSize];
this.maxSize = maxSize;
this.top = -1;
}
boolean push(E data) throws Exception {
if (isFull()){
throw new Exception("The stack is Full");
}
stackArray[++top] = data;
return true;
}
public E pop() throws Exception{
if (isEmpty()){
throw new Exception("The stack is Empty");
}
return stackArray[top--];
}
public E peek(){
return stackArray[top];
}
private boolean isEmpty(){
return top == -1;
}
private boolean isFull(){
return top == maxSize-1;
}
}
网友评论