## 概念簡述
## 特點
## 原理實現
## 時間複雜度分析
佇列是一種特殊的線性表,特殊之處在於它只允許在表的前端(front)進行刪除操作(出隊),而在表的
後端(rear)進行插入操作(入隊),進行插入操作的端稱為隊尾,進行刪除操作的端稱為隊首。佇列中
沒有元素時,稱為空佇列。和棧一樣,佇列是一種操作受限制的線性表,相比陣列,佇列對應的操作是數
組的子集。
1. 只能從一端(隊尾)新增元素,只能從另一端(隊首)取出元素
2. 儲存元素先進先出(fifo:first in first out)
1. 準備介面
// 準備介面
public inte***ce queue
2. 準備實現類
// 準備實現類:基於動態陣列實現
public class arrayqueueimplements queue
public arrayqueue(int capacity)
@override
public int getsize()
@override
public boolean isempty()
@override
public void enqueue(e e)
@override
public e dequeue()
@override
public e getfront()
@override
public string tostring()
}return res.tostring();
}public int getcapacity()
}
3. 準備測試類
// 準備測試類
public static void main(string args)
}}
void enqueue(e) o(1) //均攤
e dequeue() o(n)
e front() o(1)
int getsize() o(1)
boolean isempty o(1)
[注意]:
1. 由於對於佇列的基礎入隊操作時間複雜度為o(1),當涉及到resize方法即發生擴容時,因為並非每一次
都要進行擴容操作,經過均攤複雜度分析依然為o(1)
2. 由於在進行出隊操作時,隊首元素移除後,整個陣列佇列中其餘元素都要依此向前移動一位,故此操作時
間複雜度為o(n)
資料結構 佇列(一)
圖一 線性佇列 圖二 環形佇列 一 線性佇列和環形佇列的比較 二 深入了解環形佇列 front隊頭 第乙個元素的下標 隊滿 rear 1 n front 隊空 front rear 首先,我們要學會定義乙個結構體,這個環形佇列中就包括了資料,front,rear define size 10 typ...
資料結構 佇列
一 佇列的迴圈陣列實現。1 初始化 空佇列。令rear front 0。2 入佇列 約定rear指向佇列尾元素的下乙個位置。入佇列時,先判斷佇列是否已滿,而後將array rear x 然後rear 3 出佇列 約定front指向佇列的首元素位置。出佇列時,先判斷佇列是否為空,而後返回隊首元素re ...
資料結構 佇列
資料參考自 資料結構c 語言描述 佇列是一種先進先出的資料結構,這與棧正好相反。下例是簡單的queue實現 queue.h檔案 ifndef queue h define queue h include include 資料元素結構 自定義 struct datatype 佇列元素最大數 const...