栈的实现(基于链表)
2018-09-11 本文已影响0人
小小飞的救赎
先定义一个接口
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();
}
}