第七周專案3 負數把正數趕出佇列

2021-07-23 16:19:54 字數 1657 閱讀 9026

問題及**:

/*

*檔名稱:1.cpp

*完成日期:2023年10月13日

*版本號:v1.0

*問題描述:設從鍵盤輸入一整數序列a1,a2,…an,試程式設計實現:當ai>0時,ai進隊,當ai<0時,將隊首元素出隊,當ai=0時,表示輸入結束。要求將佇列處理成環形佇列,使用演算法庫中定義的資料型別及演算法,程式中只包括乙個函式(main函式),入隊和出隊等操作直接寫在main函式中即可。當進隊出隊異常(如隊滿)時,要列印出錯資訊。

*輸入描述:ai,ai=0時結束輸入

*程式輸出:元素進隊出隊情況

*/

sqqueue.h:

#include #include #define maxsize 100

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); //出隊

sqqueue.cpp:

#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) //出隊

main.cpp:

#include #include "sqqueue.h"

int main()

else

}printf("\n");

}return 0;

}

執行結果:

知識點總結:

順序環形佇列的應用

心得體會:

此題容易分析,不過上機時遇到了一些小problems,出現了各種崩潰的問題。以下細節問題需要注意:

1. 每次輸入第乙個整數前需要將佇列初始化,否則容易出現不正常的錯誤資訊

2. 每次進隊出隊前需要判斷(進隊前判斷隊是否已滿,出隊前判斷隊是否已空)

第七周專案3 負數把正數趕出佇列

專案 負數把正數趕出佇列 設從鍵盤輸入一整數序列a1,a2,an,試程式設計實現 當ai 0時,ai進隊,當ai 0時,將隊首元素出隊,當ai 0時,表示輸入結束。要求將佇列處理成環形佇列,使用演算法庫中定義的資料型別及演算法,程式中只包括乙個函式 main函式 入隊和出隊等操作直接寫在main函式...

第七周 專案3 負數把正數趕出佇列

檔名稱 main.cpp 作者 王超 完成日期 2015年10月14 日 問題描述 負數把正數趕出佇列 include include include sqqueue.h int main else if a 0 else break return 0 include include include...

第七周專案3 負數把正數趕出佇列

問題 檔名稱 專案3.cbp 作 者 李藝 完成日期 2015年10月23日 版 本 號 v1.0 問題描述 設從鍵盤輸入一整數序列a1,a2,an,試程式設計實現 當ai 0時,ai進隊,當ai 0時,將隊首元素出隊,當ai 0時,表示輸 入結束。要求將佇列處理成環形佇列,使用演算法庫中定義的資料...