链表实现栈的底层实现
链栈的底层实现
此程序采用上一节的链表的实现,在此基础上实现的栈
接口定义
public interface Stack<E> {
void push(E e);//入栈
E pop();//出栈
E seek();//查询栈顶元素
int getSize();//栈中元素个数
boolean isEmpty();//判栈空
}
public class LinkedListStack <E> implements Stack<E> {
private LinkedList stack;
public LinkedListStack(){
stack=new LinkedList();
}
@Override
public int getSize() {
return stack.getSize();
}
@Override
public boolean isEmpty() {
return stack.isEmpty();
}
@Override
public void push(E e) {
stack.addFirst(e);
}
@Override
public E pop() {
return (E) stack.removeFist();
}
@Override
public E seek() {
return (E) stack.getFirst();
}
@Override
public String toString(){
StringBuilder res = new StringBuilder();
res.append("Stack: top" );
res.append(stack);
return res.toString();
}
public static void main(String[] args){
LinkedListStack stack=new LinkedListStack();
System.out.println(stack.isEmpty());
stack.push(1);
stack.push(2);
stack.push(3);
stack.push(4);
stack.push(5);
System.out.println(stack.isEmpty());
System.out.println(stack);
stack.pop();
stack.pop();
System.out.println(stack);
}
}

运行结果