第七周实践项目3 负数把正数赶出队列
生活随笔
收集整理的這篇文章主要介紹了
第七周实践项目3 负数把正数赶出队列
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
/*
*Copyright (c) 2017,煙臺大學計算機與控制工程學院
*All rights reserved.
*文件名稱:項目3-
設從鍵盤輸入一整數序列a1,a2,…an,
試編程實現:當ai>0時,ai進隊,當ai<0時,將隊首元素出隊,當ai=0時,表示輸入結束。要求將隊列處理成環形隊列,使用算法庫中定義的數據類型及算法,
程序中只包括一個函數(main函數),入隊和出隊等操作直接寫在main函數中即可。
當進隊出隊異常(如隊滿)時,要打印出錯信息。
*作 者:邵雪源
*完成日期:2017年12月13日
*版 本 號:v1.0
*/
#include <stdio.h>
#include <malloc.h>
#define MaxSize 5
typedef int ElemType;
typedef struct
{ElemType data[MaxSize];int front,rear; /*隊首和隊尾指針*/
} SqQueue;
void InitQueue(SqQueue *&q) //初始化順序環形隊列
{q=(SqQueue *)malloc (sizeof(SqQueue));q->front=q->rear=0;
}
bool QueueEmpty(SqQueue *q) //判斷順序環形隊列是否為空
{return(q->front==q->rear);
}
bool enQueue(SqQueue *&q,ElemType e) //進隊
{if ((q->rear+1)%MaxSize==q->front) //隊滿上溢出return false;q->rear=(q->rear+1)%MaxSize;q->data[q->rear]=e;return true;
}
bool deQueue(SqQueue *&q,ElemType &e) //出隊
{if (q->front==q->rear) //隊空下溢出return false;q->front=(q->front+1)%MaxSize;e=q->data[q->front];return true;
}
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");}elsebreak;}return 0;
}
總結
以上是生活随笔為你收集整理的第七周实践项目3 负数把正数赶出队列的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 第七周实践项目2.3 顺序环形队列
- 下一篇: 第七周实践项目4 队列数组