第7周 專案1 建立順序環形佇列演算法庫

2021-07-05 20:43:10 字數 1761 閱讀 4144

問題及**:

main.cpp中**如下:

/*

*檔名稱:test.cpp

*作 者:徐群壯

*完成日期:2015.10.14

*版 本 號:v1.0

* *問題描述: 定義順序環形佇列儲存結構,實現其基本運算,並完成測試。

*輸入描述:

*程式輸出:

*/#include #include "sqqueue.h"

int main()

printf("\n");

printf("(9)釋放佇列\n");

destroyqueue(q);

return 0;

}

sqqueue.cpp中**如下:

#include #include #include "sqqueue.h"

void initqueue(sqqueue *&q) //初始化順序環形佇列

void destroyqueue(sqqueue *&q) //銷毀順序環形佇列

bool queueempty(sqqueue *q) //判斷順序環形佇列是否為空

int queuelength(sqqueue *q) //返回佇列中元素個數,也稱佇列長度

bool enqueue(sqqueue *&q,elemtype e) //進隊

bool dequeue(sqqueue *&q,elemtype &e) //出隊

sqqueue.h中**如下:

#ifndef sqqueue_h_included

#define sqqueue_h_included

#define maxsize 5

typedef char elemtype;

typedef struct

sqqueue;

void initqueue(sqqueue *&q); //初始化順序環形佇列

void destroyqueue(sqqueue *&q); //銷毀順序環形佇列

bool queueempty(sqqueue *q); //判斷順序環形佇列是否為空

int queuelength(sqqueue *q); //返回佇列中元素個數,也稱佇列長度

bool enqueue(sqqueue *&q,elemtype e); //進隊

bool dequeue(sqqueue *&q,elemtype &e); //出隊

#endif // sqqueue_h_included

執行結果:

知識點總結及學習心得:

⒈當進隊maxsize個元素後,隊滿的條件即rear==maxsize-1成立,此時即使出隊若干元素,隊滿條件仍然成立,而實際上佇列中有空位置,環形佇列的應用正好解決了這種假溢位的情況。

⒉如何讓最後乙個元素可以找到第乙個元素,我們在這裡採取求餘運算%來實現,因此之前在順序佇列中的q->real++和q->front++變成了front=(front+1)%maxsize和rear=(rear+1)%maxsize。所以與此相關的求隊中元素的個數等等都要做出相應的改變

⒊此時隊滿的條件是:(q->rear+1)%maxszie==q->front    隊空條件仍然是q->rear==q->front

第7周專案1 建立順序環形佇列演算法庫

問題及 檔名稱 第7周專案1 建立順序環形佇列演算法庫.cpp 作 者 劉強 完成日期 2015年10月12日 版 本 號 v1.0 問題描述 定義順序環形佇列儲存結構,實現其基本運算,並完成測試。輸入描述 若干資料。程式輸出 若干資料。1 標頭檔案 define maxsize 5 typedef...

第7周專案1 建立順序環形佇列演算法庫

版 本 號 v1.0 問題描述 定義順序環形佇列儲存結構,實現其基本運算,並完成測試。輸入描述 無 程式輸出 測試資料 1.sqqueue.h標頭檔案 ifndef sqqueue h included define sqqueue h included include include define...

第7周專案1 建立順序環形佇列演算法庫

檔名稱 第7周專案1 建立順序環形佇列演算法庫.cpp 作 者 孫翰文 完成日期 2015年10月19日 版 本 號 v1.0 問題描述 定義順序環形佇列儲存結構,實現其基本運算,並完成測試。輸入描述 若干資料。程式輸出 若干資料。1 標頭檔案 define maxsize 5 typedef ch...