数据结构

栈的实现(基于链表)

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();
    }

}
上一篇 下一篇

猜你喜欢

热点阅读