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