迴圈佇列的定義與實現

2021-10-10 19:51:37 字數 1749 閱讀 8411

說明1:以下**在vs2017中編譯通過,讀者使用時可以直接將標頭檔案(sqqueue.h),原始檔(sqqueue.c),主檔案(main.c)中的內容直接拷貝過去,即可編譯執行!

**說明2:執行圖示

標頭檔案:sqqueue.h(函式的宣告)

#ifndef _sqqueue_h_

#define _sqqueue_h_

#include

#include

#include

#include

#define error -11111

#define maxqsize 8

#define elemtype int

typedef

struct sqqueue

sqqueue;

/void

initqueue

(sqqueue* q)

;void

enqueue

(sqqueue* q,

int data)

;void

dequeue

(sqqueue* q)

;void

gethead

(sqqueue* q, elemtype* e)

;int

lengthqueue

(sqqueue* q)

;bool emptyqueue

(sqqueue* q)

;void

clearqueue

(sqqueue* q)

;void

destoryqueue

(sqqueue* q)

;void

showqueue

(sqqueue* q)

;#endif

原始檔:sqqueue.c(函式的定義)

#include

"sqqueue.h"

void

initqueue

(sqqueue* q)

void

enqueue

(sqqueue* q,

int data)

void

dequeue

(sqqueue* q)

void

gethead

(sqqueue* q,elemtype* e)

intlengthqueue

(sqqueue* q)

bool emptyqueue

(sqqueue* q)

void

clearqueue

(sqqueue* q)

void

destoryqueue

(sqqueue* q)

void

showqueue

(sqqueue* q)

printf

("<:rear>

}

主檔案:main.c(測試檔案)**

#include

"sqqueue.h"

intmain()

佇列的操作與實現 迴圈佇列

由於順序佇列有 假溢位 的缺點,所以在應用中,運用更多的是迴圈佇列來實現佇列的順序儲存。由於引用傳引數,所以原始檔需要.cpp字尾,即c 檔案儲存。迴圈佇列的判空條件為 q.rear q.fornt 迴圈佇列的判讀隊滿的條件是 q.rear 1 maxsize q.fornt 下面是佇列實現的儲存型...

普通佇列與迴圈佇列的概念與實現

author 田源 date 2021 03 12 19 26 description 普通佇列實現 入隊操作 push x this arr this tail x this tail 1 出隊操作 pop this head 1 佇列是否為空 isempty 佇列是否滿了 isfull 獲取隊首...

迴圈佇列與鏈佇列的簡單實現

為充分利用向量空間,克服 假溢位 現象的方法是 將向量空間想象為乙個首尾相接的圓環,並稱這種向量為迴圈向量。儲存在其中的佇列稱為迴圈佇列 circular queue 通過上圖可以看出,如果使用順序表作為佇列的話,當處於d狀態則不能繼續插入新的隊尾元素,否則會因為陣列越界而導致程式 被破壞。當隊列為...