\quad
使用陣列實現佇列,需要能夠實現插入、刪除元素,輸出當前佇列長度,當元素插入大於佇列當前設定長度時實現自動擴容(但是小於設定的最大佇列長度)等操作.
陣列作為連續儲存空間,插入元素只需要按順序插入即可,當刪除元素時需要涉及陣列元素的移動。為實現以上操作需要定義兩個座標變數,queuehead指向陣列的第乙個元素,queuetail指向當前需要插入的元素。
在佇列(其實就是陣列)擴充套件時,需要原陣列空間的釋放和新空間的開闢
class
arrayqueue
;arrayqueue
(int size)
// 給定佇列長度則使用該長度 size
;void
expansion()
// 擴充套件佇列(陣列)函式
;void
push
(int data)
// 插入資料 data
;int
size()
// 返回當前佇列的實際長度
;int
pop(
)// 刪除列頭元素
;int
* queuearray;
// 用於構造佇列的陣列
private
:int queuesize =10;
// 預設佇列長度
int queuehead =
0, queuetail =0;
// queuehead頭指標和queuetail對應的插入指標
int queuesizemax = int_max -8;
// 設定最大佇列長度
};
void
expansion()
delete
this
->queuearray;
// 刪除原佇列(陣列)
this
->queuearray =
newint
[this
->queuesize]
;// 新建佇列(陣列)
for(
int i =
0; i <
this
->queuetail;
++i)
delete
temparray;
// 刪除中間陣列
};
void
push
(int data)
// 插入元素函式
elseif(
this
->queuetail >=
this
->queuesize &&
this
->queuesize <
this
->queuesizemax)
elseif(
this
->queuesize >=
this
->queuesizemax)
};
int
pop(
)else
--this
->queuetail;
// 指向的位置移動
return anspop;
// 返回佇列頭}}
;
void
arrayqueuefun()
;for
(int i =
0; i <10;
++i)
std::cout <<
"****************"
<< std::endl;
for(
int i =
0; i <10;
++i)
std::cout <<
"****************"
<< std::endl;
for(
int i =
0; i <10;
++i)
std::cout <<
"****************"
<< std::endl;
for(
int i =
0; i <5;
++i)
std::cout <<
"****************"
<< std::endl;
for(
int i =
0; i <5;
++i)
std::cout <<
"****************"
<< std::endl;
for(
int i =
0; i <11;
++i)
};
希望大家多提程式優化和程式設計規範的意見 !!! 使用陣列實現佇列
佇列 使用陣列實現佇列 列隊類 public classmyqueue 帶引數的構造方法,引數為陣列的大小 publicmyqueue intmaxsize 新增資料 從隊尾插入 public voidinsert longvalue 刪除資料,從隊頭刪除 public longremove 檢視資...
使用定長陣列實現佇列
使用定長陣列實現佇列方法很簡單 我們需要 4 1 乙個陣列 2 乙個能表示陣列中還有多少容量的變數 3 乙個能表示隊首的變數 4 乙個能表示隊尾的變數 入隊先判斷佇列還有多少容量,如果容量為0表示隊滿,則不能在入隊。如果容量不為0.則表示佇列還有容量。然後再判斷入隊後,隊尾是不是陣列的最後乙個節點,...
陣列實現迴圈佇列 C 實現
file name aqueue.cpp function 陣列實現迴圈佇列 c 實現 陣列a 0 一端為head 1.當 head tail時為空 2.tail總指向 隊尾元素的下一位置 3.tail max head 1,也就是說,保留乙個元素空間 4.佇列最多有 max 1 個元素 5.當 t...