JAVA數據結構之鏈表實現棧

鏈表實現棧

接口

public interface Stack <E>{
    int getSize();
    boolean isEmpty();
    void push(E e);
    E pop();
    E peek();
}
  • 需要用到,博客之前寫的鏈表【有dummyNode】的數據結構,直接複製就行

鏈表實現

public class LinkedListStack<E> implements Stack<E>{
    private LinkedList<E> list;

    public LinkedListStack{
        list = new LinkedList<E>;
    }

    public int getSize(){
        return list.getSize();
    }
    public boolean isEmpty(){
        return list.isEmpty();
    }
    public void push(E e){
        list.addFirst(e);
    }
    public E pop(){
        return list.removeFirst();
    }
    public E peek(){
        return list.getFirst();
    }

     @Override
    public String toString(){
        StringBuilder res = new StringBuilder();
        res.append("Stack:top");
        res.append(list);
        return res.toString();
    }
}
  • ArrayStack相比:
  • 時間複雜度差不多,但是鏈表在新開闢空間,也就是new Node 的這個過程中會更耗費時間

利用了鏈表的頭結點 出鏈,入鏈的時間複雜度小。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章