1 栈
1.1 栈的概念
栈:一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端称为栈顶,另一端称为栈底。栈中的数据元素遵守后进先出LIFO(Last In First Out)的原则。
压栈:栈的插入操作叫做进栈/压栈/入栈,入数据在栈顶。
出栈:栈的删除操作叫做出栈,出数据在栈顶。
1.2 栈的实现
public class MyStack<T> {
public T[] elem;
public int top;
public MyStack() {
this.elem = (T[])new Object[10];
}
public void push (T val) {
if(isfull()) {
this.elem = Arrays.copyOf(this.elem,2*this.elem.length);
}
this.elem[top] = val;
top++;
}
public boolean isfull() {
return this.top == this.elem.length;
}
public boolean empty() {
return this.top == 0;
}
public T pop() {
if(empty()) {