java實現隊列

來源:互聯網
上載者:User

隊列是一種重要的資料結構,在排隊論和演算法設計中有很重要的應用,其實隊列也是一種鏈表,它只允許在表的始端出表(dequeue),在表的末端入表(enqueue),下邊是隊列的java實現。

//隊列是一種重要的資料結構,主要應用是資源的排隊(例如印表機),需要注意的是要利用迴圈資料來儲存資料class Queue {private int front;private int back;private int size;private Object[] data;public Queue(){data=new Object[10];}public int getSize(){return size;}public Object dequeue(){Object o=null;if(size>0){size--;o=data[front];data[front]=null;front=(front>data.length-1)?0:front+1;}return o;}public void enqueue(Object o){if(size>=data.length){Object[] newData=new Object[data.length*2];for(int i=0;i<data.length;++i){newData[i]=data[i];}data=newData;}data[back]=o;back++;size++;}public String toString(){StringBuffer str=new StringBuffer();for(int i=0;i<data.length;i++){Object o=data[i];if(o!=null){str.append(o+" ");}}return str.toString();}}

測試方法如下:

public static void main(String[] args){Queue queue=new Queue();for(int i=0;i<15;i++){queue.enqueue("sunzhenxing"+i);}System.out.println(queue);System.out.println(queue.getSize());System.out.println("----------------------");for(int i=0;i<10;i++){queue.dequeue();}System.out.println(queue);System.out.println(queue.getSize());System.out.println("----------------------");for(int i=0;i<5;i++){queue.enqueue("sunhailong"+i);}System.out.println(queue);System.out.println(queue.getSize());}

輸出是:

sunzhenxing0 sunzhenxing1 sunzhenxing2 sunzhenxing3 sunzhenxing4 sunzhenxing5 sunzhenxing6 sunzhenxing7 sunzhenxing8 sunzhenxing9 sunzhenxing10 sunzhenxing11 sunzhenxing12 sunzhenxing13 sunzhenxing14
15
----------------------
sunzhenxing10 sunzhenxing11 sunzhenxing12 sunzhenxing13 sunzhenxing14
5
----------------------
sunzhenxing10 sunzhenxing11 sunzhenxing12 sunzhenxing13 sunzhenxing14 sunhailong0 sunhailong1 sunhailong2 sunhailong3 sunhailong4
10

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.