將一維陣列視作環形,即陣列最後一項的下一項是陣列首項。
將佇列中的元素按照順序存入環形陣列中,則只需記錄隊首和隊尾的下標即可確定整個佇列在陣列中的位置。
在該迴圈陣列中,隊尾插入(陣列未滿時)和隊首刪除的時間複雜度均為o(1)。
//定義陣列描述的迴圈佇列
template
<
class
t>
class
arrayqueue
~arrayqueue()
//析構
bool
empty()
const
//判斷佇列是否為空
intsize()
//佇列長度
t&top()
//隊首元素值
void
push
(const t& theelement)
//隊尾插入新元素
queuefront =0;
queueback = arraysize -1;
delete
arr;
arr = newarr;
arraysize *=2
;}queueback =
(queueback +1)
% arraysize;
arr[queueback]
= theelement;
length++;}
void
pop(
)//隊首刪除元素
private
:int queuefront;
//隊首座標
int queueback;
//隊尾座標
t* arr;
//存放陣列
int length;
//佇列長度
int arraysize;
//陣列容量
};
佇列 JAVA描述
佇列是一種特殊的線性表,其特性體現在佇列只允許在表尾插入資料元素,在表頭刪除元素,所以佇列是一種操作受限的線性表,具有先進先出的特點。允許進行插入的一端稱為隊尾,允許進行刪除的一端稱為隊首。佇列也分為順序和鏈式兩種儲存結構。如下為佇列介面的 public inte ce iqueue 1 迴圈順序佇...
鏈式儲存佇列 用C語言描述
include include 佇列的鏈式儲存 佇列的頭 front 必須指向鍊錶的頭結點,佇列的尾 rear 指向鍊錶的尾結點 typedef int elementtype elementtype error 1 typedef struct node ptrtonode 佇列中的結點 stru...
迴圈佇列(java描述)
佇列 queue 是先進先出的線性儲存結構,在隊首刪除元素,在隊尾插入元素。而迴圈佇列更好的利用了佇列的儲存空間,當插入到隊尾時,如果隊首元素已經出隊,則從隊首接著插入。front 隊頭指標 rear隊 尾指標 隊列為空時 front rear 隊列為滿時 rear 1 maxsize front ...