問題及**:
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...