1. 程式人生 > >原來這才是使用LinkedList實現堆疊和佇列的方式!

原來這才是使用LinkedList實現堆疊和佇列的方式!

LinkedList採用的將物件存放在獨立的空間中,而且在每個空間中還儲存下一個連結的索引,但是缺點就是查詢非常麻煩,要叢第一個索引開始。

使用LinkedList實現堆疊

堆疊:是一種先進後出的資料結構(容器),就像彈夾一樣。

package test;
import java.util.LinkedList;

public class d1 {
    private LinkedList linkedList=new LinkedList();

    //壓棧
    public void  push(Object value){//壓
        linkedList.addFirst(value);
    }

    //出棧
    public Object pop(){//彈
        Object value=linkedList.getFirst();
        linkedList.removeFirst();
        return value;
    }

    //容器大小
    public int size(){
        return linkedList.size();
    }

    public static void main(String[] args) {
        d1 d1=new d1();
        d1.push("12");
        d1.push("13");
        d1.push("14");
        d1.push("15");

        while(d1.size()!=0){
            System.out.println(d1.pop());
        }
    }
}

使用LinkedList實現佇列

佇列:先進先出,當多個任務分配給印表機時,為了防止衝突,建立一個佇列,把任務入隊,按先入先出的原則處理任務。當多個使用者要訪問遠端服務端的檔案時,也用到佇列,滿足先來先服務的原則。

package test;

import java.util.LinkedList;

public class d2 {
    private LinkedList<Object> link;

    public d2(){
        link = new LinkedList();
    }

    public void myAdd(Object obj){
        link.addFirst(obj);
    }
    public Object myGet(){
        return link.removeLast();
    }

    public boolean isNull(){
        return link.isEmpty();
    }

    public static void main(String[] args)
    {
        d2 d2 = new d2();
        d2.myAdd("Java01");
        d2.myAdd("Java02");
        d2.myAdd("Java03");
        d2.myAdd("Java04");
        // System.out.println(dl.myGet());
        System.out.println("============");
        while (!d2.isNull())
        {
            System.out.println(d2.myGet());
        }
    }
}

​​​​----------------------------------------------因害怕失敗而不敢放手一搏,永遠不會成功。 ​​​​----------------------------------------------