隊列----java實現

來源:互聯網
上載者:User

標籤:null   插入   node   nod   void   int   實現   ext   ted   

FIFO:先進先出

儲存單元:

public class Node {    /*    元素有兩部分:    元素    下一個元素的引用     */    Object data;//資料域    Node next; //指標域    public Node(){}    public Node(Object data,Node next){        this.data=data;        this.next=next;    }}

實現:

/** * Created by yaming  * 鏈式隊列---鏈式儲存實現 */public class LinkQueue {    private Node first;//隊列頭,可以刪除    private Node last;//隊列尾,可以插入    private int size;    /**     * 是否為空白     * @return     */    public boolean isEmpty(){        return size==0;    }    /**     * 長度     * @return     */    public int size(){        return size;    }    /**     * 入隊     * @param data     * @return     */    public boolean push(Object data){        Node node=new Node(data,null);        //如果該鏈隊列還是空鏈隊列        if (first == null) {            first = node;            last = first;//只有一個節點,front、rear都指向該節點        } else {            last.next = node;//讓尾節點的next指向新增的節點            last = node;//以新節點作為新的尾節點        }        size++;        return true;    }    /**     * 出隊     * @return     */    public Object pull(){        Node node = first;        first = first.next;        node.next = null;        size--;        return node.data;    }    /**     * 隊列尾元素     * @return     */    public Object getLast(){        if(isEmpty()){            return null;        }        return last.data;    }    public Object getFirst(){        if(isEmpty()){            return null;        }        return first.data;    }    public void clear(){        first=null;        last=null;        size=0;    }    /**     * 遍曆     * @return     */    public String queue(){        if(isEmpty()){            return "[]";        }else {            StringBuilder stringBuilder=new StringBuilder("[");            for(Node current=first;current!=null;current=current.next){                stringBuilder.append(current.data.toString()+", ");            }            int length=stringBuilder.length();            return stringBuilder.delete(length-2,length).append("]").toString();        }    }}

 

隊列----java實現

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.