數據結構之隊列(java語言版)

數據結構之隊列(java語言版)

數據結構與算法學習目錄

隊列(Queue):在邏輯上是一種線性存儲結構。它有以下幾個特點:
1、隊列中數據是按照"先進先出(FIFO, First-In-First-Out)"方式進出隊列的。
2、 隊列只允許在"隊首"進行刪除操作,而在"隊尾"進行插入操作。
隊列通常包括的兩種操作:入隊列 和 出隊列。

隊列的種類也很多,單向隊列,雙向隊列,循環隊列。

底層可以由數組(順序表),鏈表實現。

數組隊列

public class Queue {//隊列
	Array list;
	public Queue() {
		this.list=new Array(20);
	}
	
	public void enQueue(Object e) {
        list.add(e);
        System.out.println("入隊");
	}
	
	public Object deQueue() {
        System.out.println("出隊");
		return list.removeHead();
	}
	
	public void display() {
		list.display();
	}
}


測試

      	Queue queue=new Queue();

        queue.enQueue("ok");
        queue.enQueue("well");
        queue.enQueue("good");
        queue.enQueue("nice");

        queue.display();

        queue.deQueue();
        queue.deQueue();
        queue.display();

結果如下:

add success
入隊
add success
入隊
add success
入隊
add success
入隊
display:
 ok well good nice
 display  over...
出隊
出隊
display:
 good nice
 display  over...

鏈表隊列

public class LinkQueue{
    SingleLinkList list;
    public LinkQueue(){
        list=new SingleLinkList();
    }

    public void enQueue(Object e) {
        list.add(e);
        System.out.println("入隊");
	}
	
	public Object deQueue() {
        Object e=list.get(1);
        list.remove(1);
        System.out.println("出隊");
		return e;
	}
	
	public void display() {
		list.display();
    }
    
    public int getSize(){
        return list.getSize();
    }
}

測試

		LinkQueue queue2=new LinkQueue();

        queue2.enQueue("ok");
        queue2.enQueue("well");
        queue2.enQueue("good");
        queue2.enQueue("nice");

        queue2.display();

        queue2.deQueue();
        queue2.deQueue();
        queue2.display();

結果如下:

入隊
入隊
入隊
入隊
開始遍歷數據:
  ok  well  good  nice
遍歷結束
出隊
出隊
開始遍歷數據:
  good  nice
遍歷結束

數據結構與算法學習目錄

發佈了156 篇原創文章 · 獲贊 9 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章