佇列順序儲存的實現及操作

2021-08-11 16:52:54 字數 913 閱讀 5982

普通的順序儲存的佇列因其儲存方式的問題出現假溢位的現象,即隊頭不在儲存空間開始的位置,而隊尾在儲存空間的結束的位置,此時無法再入隊新元素,但儲存空間還未滿。為了解決假溢位現象並使得佇列空間得到充分利用,乙個較巧妙的方法是將順序佇列看成乙個環狀的空間,即規定最後乙個單元的後繼為第乙個單元,形象地稱之為迴圈佇列(circular queue)。

示例**

#include 

#include

#define maxsize 50

typedef

structseqqueue;

void initqueue(seqqueue *q);

int isempty(seqqueue *q);

int enqueue(seqqueue *q, char x);

int dequeue(seqqueue *q, char *x);

int gethead(seqqueue *q, char *x);

void print_hyphen(int n);

int main(void)

int end = 0;

int ope;

char ch;

while(!end)

}return0;}

void initqueue(seqqueue *q)

int isempty(seqqueue *q)

int enqueue(seqqueue *q, char x)

int dequeue(seqqueue *q, char *x)

int gethead(seqqueue *q, char *x)

void print_hyphen(int n)

佇列的順序儲存實現

順序儲存佇列標頭檔案 1 pragma once 2 include3 include4 define max size 102456 順序佇列結構體 7 typedef struct seqqueue 8seqqueue 1213 初始化佇列 14 seqqueue init seqqueue 1...

佇列 迴圈佇列 的順序儲存實現

佇列的順序儲存實現 1 佇列 一端進,另一端出 佇列由兩個引數決定,front 頭 rear 尾 頭指標指向頭乙個元素,尾指標指向指向最後乙個元素的下一儲存單元 若陣列長度為n,當元素個數為n 1時就認為佇列已滿。r指向最後乙個空的元素空間。出隊 頭指標往上移動,入隊 尾指標向上移動,故 靜態佇列只...

佇列 順序儲存 基本操作

佇列是一種操作受限的線性表 佇列只允許在一端進行插入 即入隊 另一端進行刪除 即出隊 隊尾進,對頭出 first in first out fifo 初始化佇列,構造乙個空的佇列 void initqueue sqqueue q 判斷佇列是否為空 bool queueisempty sqqueue ...