問題及**:
此程式呼叫了環形佇列演算法庫(sqqueue.cpp和sqqueue.h)。
/*
*檔名稱:test.cpp
*作 者:徐群壯
*完成日期:2015.10.15
*版 本 號:v1.0
* *問題描述:設從鍵盤輸入一整數序列a1,a2,…an,試程式設計實現:當ai>0時,ai進隊,
當ai<0時,將隊首元素出隊,當ai=0時,表示輸入結束。要求將佇列處理成環形佇列,
使用演算法庫中定義的資料型別及演算法,程式中只包括乙個函式(main函式),入隊和
出隊等操作直接寫在main函式中即可。當進隊出隊異常(如隊滿)時,要列印出錯資訊。
並且在最後輸出佇列資訊。
*輸入描述:
*程式輸出:
*/#include #include #include "sqqueue.h"
using namespace std;
void printfqueue(sqqueue *q)
}int main()
{ elemtype a,x;
sqqueue *qu;
initqueue(qu);
while(1)
{cout
if(a>0)
{if(!enqueue(qu,a))
cout<
執行結果:
知識點總結及學習心得:
⒈在一開始直接呼叫演算法庫的時候會出現亂碼,原因是我們在主程式中的判斷依據是看輸入數的正負,當初編寫sqqueue的演算法庫的時候。設定了elemtype為char型別。所以在具體的實踐過程中。要根據實際情況修改演算法庫中的資料。
⒉在當初寫演算法庫的時候。設定的maxsize為5.根據程式可以看出。我們實際存入的只有4(maxsize)個元素。這是因為我們在當初區分隊滿和隊空的時候,約定在進隊時少用乙個資料元素空間。所以佇列中始終乙個空元素不用。這點是我們在程式設計中所需要注意的。
⒊在定義輸出隊元素的函式的時候。一開始我並沒有在此函式中定義與q指標相同的temp指標。但是後來我發現。如果不用temp指標(記錄下q的位置),在迴圈結束後原先的front指標和rear所指向的內容已經變化。如果此程式後面沒有操作還好說、萬一又有進隊或者出隊的操作就錯了。所以我在這定義了temp指標,記錄q。
第7周 專案3 負數把正數趕出佇列
1.標頭檔案 sqqueue.h,包含定義順序環形佇列資料結構的 巨集定義 要實現演算法的函式的宣告 define maxsize 5 typedef int elemtype typedef struct sqqueue void initqueue sqqueue q 初始化順序環形佇列 voi...
第7周專案3負數把正數趕出佇列
問題及 1 演算法庫sqqueue.h 2 main.cpp 檔名稱 專案3.cpp 完成日期 2015.10.23 問題描述 設從鍵盤輸入一整數序列a1,a2,an,試程式設計實現 當ai 0時,ai進隊,當ai 0時,將隊首元素出隊,當ai 0時,表示輸入結束。要求將佇列處理成環形佇列,使用演算...
第7周專案3 負數把正數趕出佇列
問題及 檔名稱 第7周專案3 負數把正數趕出佇列.cpp 作 者 魏永恆 完成日期 2015年10月23日 版 本 號 v1.0 問題描述 設從鍵盤輸入一整數序列a1,a2,an,試程式設計實現 當ai 0時,ai進隊,當ai 0時,將隊首元素出隊,當ai 0時,表示輸入結束。要求將佇列處理成環形佇...