原來這才是使用LinkedList實現堆疊和佇列的方式!
阿新 • • 發佈:2019-02-08
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()); } } }
----------------------------------------------因害怕失敗而不敢放手一搏,永遠不會成功。 ----------------------------------------------