使用陣列實現佇列C

2021-10-24 19:03:02 字數 2507 閱讀 7384

\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...