前言:以下为自主设计栈,供理解用
栈接口:
package DataStructure.stacks;
import java.util.List;
public interface IStack<E> {
//1.判断空栈
public boolean isEmpty();
//2.判断栈满,链栈始终为false,除非虚拟机栈内存耗尽
public boolean isMax();
//3.入栈
public boolean push(E e);
//4.出栈
public E pop();
//5.返回栈顶
public E peek();
/**
* 6.返回栈元素在栈中的位置
* OrderStack:返回栈元素在栈中的位置,栈底元素位置为0,
* LinkedStack:返回栈元素在栈中的位置,栈底元素位置为0
* @param e
* @return
*/
public int getIndex(E e);
//7.返回栈的实际长度
public int size();
//8.返回栈容量,链栈因为是动态扩容,实际长度等于栈大小
public int getStackSize();
//9.打印栈
public List<E> display();
}
顺序栈:
package DataStructure.stacks;
import java.util.ArrayList;
import java.util.List;
/**
* 顺序栈
*
* @class DataStructure.stacks.OrderStack
* @author ljj
* @date 2019-04-22
* @notes
*
* @param <E>
*/
public class OrderSt