/*
*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 负数把正数赶出队列相关推荐

  1. 数据结构上机实践第七周项目3 - 负数把正数赶出队列

    负数把正数赶出队列 使用本文所用的环形队列的算法库(sqqueue.h),点击此处参考 实现源代码如下: main.cpp /* copyright (t) 2017,烟台大学计算机学院 *All r ...

  2. 第七周实践项目2.3 顺序环形队列

    下图是数据存储结构设计及各种操作实现的要点: /* *Copyright (c) 2017,烟台大学计算机与控制工程学院 *All rights reserved. *文件名称:项目2.3- *作 者 ...

  3. 第七周实践项目4 队列数组

    创建10个队列,分别编号为0-9(处理为队列数组,编号即下标).输入若干个正整数,以数字0作为结束.设输入的值为x,其个位数字的大小为i,则将x插入到编号为i的队列中.最后输出所有的非空队列. 要求将 ...

  4. 第七周实践项目6 停车场模拟(栈和队列综合)

    设停车场是一个可停放n辆汽车的狭长死胡同,南边封口,汽车只能从北边进出(这样的停车场世间少有).汽车在停车场内按车辆到达时间的先后顺序,最先到达的第一辆车停放在车场的最南端,依次向北排开.若车场内已停 ...

  5. 第七周实践项目5 排队看病模拟(队列)

    编写一个程序,反映病人到医院看病,排队看医生的情况.在病人排队过程中,主要重复两件事:  (1)病人到达诊室,将病历本交给护士,排到等待队列中候诊.  (2)护士从等待队列中取出下一位病人的病历,该病 ...

  6. 2015级C++第14周实践项目 模板

    [项目1-排序函数模板] 已知 void Sort(int a[],int size); void Sort(double a[],int size); 是一个函数模板的两个实例,其功能是将数组a中的 ...

  7. 第八周实践项目9 算法库——广义表

    /* *Copyright (c) 2017,烟台大学计算机与控制工程学院 *All rights reserved. *文件名称:项目9- *作 者:邵雪源 *完成日期:2017年12月14日 *版 ...

  8. 第八周实践项目7 对称矩阵的压缩存储及基本运算

    /* *Copyright (c) 2017,烟台大学计算机与控制工程学院 *All rights reserved. *文件名称:项目7- *作 者:邵雪源 *完成日期:2017年12月14日 *版 ...

  9. 第八周实践项目6 猴子选大王(数组版)

    /* *Copyright (c) 2017,烟台大学计算机与控制工程学院 *All rights reserved. *文件名称:项目6-一群猴子,编号是1,2,3 -m,这群猴子(m个)按照1-m ...

最新文章

  1. A Self-Attention Setentence Embedding 阅读笔记
  2. 【Servlet】HTTP 协议之请求方式、Servlet介绍、Servlet 的生命周期
  3. hdf5文件和csv的区别_使用HDF5文件并创建CSV文件
  4. laravel项目中css样式表的背景图片不显示
  5. 读取Xml文档的元素和属性
  6. vmware 克隆 LVM 分区的系统
  7. Windows下Apache架站务实
  8. pandas—pandas.crosstab交叉表
  9. 172篇文献:NUS颜水成等发布首篇《深度长尾学习》综述
  10. 索纳塔9 2.4L旗舰版 一手原车 诚意出售
  11. Qt 确认对话框(确定/取消)
  12. 2020年最好用的手机是哪一款_2020最好用的5G手机是哪一款?热销2020年5g手机推荐及点评...
  13. 信创操作系统--麒麟Kylin桌面操作系统 (项目十二 使用Systemd管理系统服务)
  14. 一问解决设备管理器里面提示:未知usb设备(设备描述符请求失败) 或者是“Unknown USB Device(Device Descriptor Request Sailed)”错误
  15. java短信验证码功能发送的验证码如何校验_Java实现短信发送验证码功能
  16. ZZULIOJ1011: 圆柱体表面积
  17. yarn.lock、package-lock.json、npm-shrinkwrap.json的理解
  18. 编写一个程序实现顺序栈(假设栈中元素类型为char)的各种基本运算
  19. 安装虚拟计算机有什么用途,为什么要使用虚拟机软件?——VMware的介绍与安装...
  20. 【OpenCV】HSV颜色识别-HSV基本颜色分量范围

热门文章

  1. jquery getJSON 中对超时Timeout的处理
  2. 【转】 ASP.NET 3.5中使用新的ListView控件
  3. MSM8953 core 3.0 usb otg USB 笔记
  4. 乐观锁、悲观锁简单分析,回忆旧(新)知识...
  5. Linux内核创建一个新进程的过程
  6. [leetcode] Pow(x, n)
  7. 再次推荐数据安全清除软件----Eraser
  8. php header下载中文名称,PHP Header下载文件在IE文件名中文乱码问题
  9. python线性回归模型预处理_线性回归-2 数据预处理与模型验证评估
  10. 机器学习笔记(七)贝叶斯分类器