1.链栈LinkedStack实现
/**
* 双向链表实现栈
* @author Administrator
*/
public class LinkedStack implements Stack {
/**
* 链表的结点个数
*/
private int size;
/**
* 首结点
*/
private Node first = new Node(null,null,null);
/**
* 尾结点
*/
private Node last = new Node(null,null,null);
/**
* 初始化双向链表
*/
public LinkedStack() {
this.first.next=last;
this.last.prev=first;
this.size = 0;
}
/**
* 返回栈的大小
*
* @return
*/
@Override
public int getSize() {
return size;
}
/**
* 判断栈是否为空
*
* @return
*/
@Override
public boolean isEmpty() {
return size==0;
}
/**
* 元素e入栈
*
* @param e
*/
@Override
public void push(Object e) {
//新创建一个结点
Node newNode = new Node(null,e,null);