1. 程式人生 > >*第七週*資料結構實踐專案三【負數把整數趕出佇列】

*第七週*資料結構實踐專案三【負數把整數趕出佇列】

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

我採用了多檔案系統的方式構建這個程式,分為兩個部分,標頭檔案部分使用之前建設的演算法庫,但是要將ElemType定義為int。

主函式:

/*
 
    Copyright (c) 2015,煙臺大學計算機與控制工程學院 
    All righs reserved 
    檔名稱:text.h 
    作者: 李哲 
    完成日期:2015年10月16日 
 
    問題描述:負數把整數趕出佇列 
    程式說明:主函式
 
 
*/ 

#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;
}