1. 程式人生 > >Java用連結串列實現佇列

Java用連結串列實現佇列

佇列--先入先出

棧---後入先出

連結串列實現佇列和棧。首先我們需要構建一個連結串列。連結串列有哪幾要素?  

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