首先定义一个接口(基于已写好的链表实现的栈)
public interface Stack<E> {
int getSize();
boolean isEmpty();
boolean contains(E e);
//入栈
void push(E e);
//查看栈顶的数据
E peek();
//出栈
E pop();
}
定义一个栈的类,继承Stack接口
/**
* 基于链表实现栈
* @author hcc
*链表的开头是栈底,链表的末尾是栈顶
*/
public class LinkedStack<E> implements Stack<E> {
private HLinkList<E> list;
public LinkedStack() {
list = new HLinkList<E>();
}
@Override
public int getSize() {
// TODO Auto-generated method stub
return list.getSize();
}
@Override
public boolean isEmpty() {
// TODO Auto-generated method stub
return list.isEmpty();
}
@Override
public boolean contains(E e) {
// TODO Auto-generated method stub
return list.contains(e);
}
@Override
public void push(E e) {
// TODO Auto-generated method stub
list.add(e);
}
@Override
public E peek() {
// TODO Auto-generated method stub
return list.get(list.getSize()-1);
}
@Override
public E pop() {
// TODO Auto-generated method stub
return list.remove();
}
public String toString() {
StringBuilder str = new StringBuilder();
str.append("LinkStack:");
str.append(list);
return str.toString();
}
}