問題及代碼:
/*
Copyright (c)2015,煙臺大學計算機與控制工程學院
All rights reserved.
文件名稱:第7周項目3--負數把正數趕出隊列.cpp
作 者:朱振華
完成日期:2015年10月19日
版 本 號:v1.0
問題描述:設從鍵盤輸入一整數序列a1,a2,…an,試編程實現:
當ai>0時,ai進隊,當ai<0時,將隊首元素出隊,
當ai=0時,表示輸入結束。要求將隊列處理成環形隊列,
使用環形隊列算法庫中定義的數據類型及算法,程序中
只包括一個函數(main函數),入隊和出隊等操作直接
在main函數中調用即可。當進隊出隊異常(如隊滿)時,
要打印出錯信息。
輸入描述:無.
程序輸出:無.
*/
1. 環形隊列算法庫
2. 主函數
#include <stdio.h>
#include <malloc.h>
#include "sqqueue.h"
int main()
{
ElemType a,x;
SqQueue *qu; //定義隊列
InitQueue(qu); //隊列初始化
while (1)
{
printf("輸入a值(輸入正數進隊,負數出隊,0結束):");
scanf("%d", &a);
if (a>0)
{
if (!enQueue(qu,a))
printf(" 隊列滿,不能入隊\n");
}
else if (a<0)
{
if (!deQueue(qu, x))
printf(" 隊列空,不能出隊\n");
}
else
break;
}
return 0;
}
運行結果: