陣列實現迴圈佇列 C 實現

2021-07-11 10:53:23 字數 1982 閱讀 8997

/*

* file name : aqueue.cpp

* function : 陣列實現迴圈佇列 c++實現

陣列a[0] 一端為head

1. 當 head==tail時為空

2. tail總指向 隊尾元素的下一位置

3. tail max==head-1,也就是說,保留乙個元素空間

4. 佇列最多有 max-1 個元素

5. 當 (tail+1)% max ==head 時,佇列滿.

6. 佇列長度 若 head < tail,為 tail - head

若 head > tail,為 tail - head +max

綜上 佇列長度= ( tail - head +max )% max

* created on : 2023年4月26日

* author : [email protected]

任何單位和個人不經本人允許不得用於商業用途

*/#include #include using namespace std;

#define max 10

typedef int elem_t;

typedef struct aqueue aqueue;

void queue_init(aqueue & q);

void queue_clear(aqueue & q);

bool queue_is_empty(aqueue & q);

bool queue_in(aqueue & q, elem_t elem);

bool queue_out(aqueue & q, elem_t &elem);

int queue_get_length(aqueue & q);

bool queue_get_head(aqueue & q, elem_t &elem);

int main(int argc, char** argv)

cout << "the length of queue is " << queue_get_length(aq) << endl;

queue_get_head(aq, elem);

cout << "the head of queue is " << elem<< endl;

for (int i = 0; i <=5; i++)

} for (int i = 0; i <=6; i++)

cout << "the length of queue is " << queue_get_length(aq) << endl;

queue_get_head(aq, elem);

cout << "the head of queue is " << elem << endl;

return 0;

}void queue_init(aqueue & q)

void queue_clear(aqueue & q)

bool queue_get_head(aqueue & q, elem_t &elem)

elem = q.data[q.head];

return true;

}bool queue_is_empty(aqueue & q)

bool queue_is_full(aqueue &q)

bool queue_in(aqueue & q, elem_t elem)

if (q.tail == max)

q.data[q.tail++] = elem;

return true;

}bool queue_out(aqueue & q, elem_t &elem)

elem = q.data[q.head++];

if (q.head == max)

q.head = 0;

return true;

}int queue_get_length(aqueue & q)

佇列 陣列實現 迴圈佇列

1 陣列佇列.cpp 定義控制台應用程式的入口點。2 3 include4 include5 include abs 6 include7 include8 using namespace std 9 10 定義乙個佇列的結構體11 struct myqueue12 17 18 規則說明 19 nh...

陣列實現迴圈佇列

1 動態陣列型別 typedef struct qnode queue 1 分配結構體內存與陣列記憶體 queue initialize1 相應main函式 int main 2 只分配陣列記憶體不分配結構記憶體 int initialize2 queue q 相應main函式 int main 2...

迴圈陣列實現佇列

佇列是先進先出 fifo 模式,從隊尾加入元素的操作叫入隊,從隊首刪除元素的操作叫出隊 設定兩個指標分別為front指向隊首,real指向隊尾。開始時front和real分別為 1。當有元素入隊時real 1 當有元素出隊時front 1.public class queuesimulation s...