Java用連結串列實現佇列
阿新 • • 發佈:2018-11-04
佇列--先入先出
棧---後入先出
連結串列實現佇列和棧。首先我們需要構建一個連結串列。連結串列有哪幾要素?
1、連結串列本身的value
2、連結串列的next指標,next指標指的還是同樣型別的值。
下邊看程式碼
public class Element<T> { private T value;//連結串列值 private Element<T> next;//指標 public void setNext(Element<T> next) { this.next = next; } public Element<T> getNext(){ return next; } public void setValue(T value) { this.value = value; } public T getValue(){ return value; } }
下邊我們來構建先入先出的佇列。
首先佇列有一個頭,不然的話 佇列從哪開始呢?
所以我們定義類時主要包括 頭、尾、連結串列長度。
程式碼如下:
public class ListImpl<T>{ private Element<T> first=null; //連結串列頭 private Element<T> last=null; //連結串列尾 private int size=0; //連結串列長度 public boolean pushBack(T newElement) { Element<T> element=new Element<>(); element.setValue(newElement); if(size==0) { first=element; size++; return true; } if(last==null){ last=element; first.setNext(last); }else { last.setNext(element); last=element; } size++; return true; } public Element<T> popFront() { if(first==null){ return null; }else { Element<T> result=first; first=first.getNext(); return result; } } public int size() { return size; } public Element front() { return first; } }
好了 到底我們的連結串列結構就完成了。下邊測試一下吧
public static void main(String[] args) { ListImpl<String> list=new ListImpl<String>(); list.pushBack("11"); list.pushBack("22"); list.pushBack("33"); System.out.print(list.popFront().getValue().toString()); System.out.print(list.popFront().getValue().toString()); System.out.print(list.popFront().getValue().toString()); }
結果:11
結果:22
結果:33