- 栈(stack)又名堆栈,它是一种运算受限的线性表。限定仅在表尾进行插入和删除操作的线性表。这一端被称为栈顶(top),相对地,把另一端称为栈底。向一个栈插入新元素又称作进栈、入栈或压栈(push),它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;从一个栈删除元素又称作出栈或退栈(push),它是把栈顶元素删除掉,使其相邻的元素成为新的栈顶元素。
java代码实现:
package com.guohao.arithmetics;
import java.lang.reflect.Array;
public class Stack<T> {
private T[] data;
private int capacity;
private int size;
private int top;
public Stack(Class<T> type, int capacity){
data = (T[])Array.newInstance(type, capacity);
this.capacity = capacity;
size = 0;
top = -1;
}
public boolean push(T element){
if(isFull()){
return false;
}
data[++top] = element;
size++;
return true;
}
public T pop(){
if(isEmpty()){
return null;
}
size--;
return data[top--];
}
public boolean isFull(){
return capacity==size;
}
public boolean isEmpty(){
return size==0;
}
public T[] getData() {
return data;
}
public void setData(T[] data) {
this.data = data;
}
public int getCapacity() {
return capacity;
}
public void setCapacity(int capacity) {
this.capacity = capacity;
}
public int getSize() {
return size;
}
public void setSize(int size) {
this.size = size;
}
public int getTop() {
return top;
}
public void setTop(int top) {
this.top = top;
}
}