1、头文件Queue.h

#include<iostream>
using namespace std;//定义4个空间,留出一个作为标志位,当Q.rear+1 / MAXQSIZE = Q.front时,说明队列已满#define MAXQSIZE 4
#define ok 1
#define error 0
#define flow 0typedef int ElemType;
typedef int Status;//定义数据类型
typedef struct{ElemType *base;int front;int rear;}SqQueue;//初始化队列
Status InitQueue(SqQueue& Q)
{Q.base = new ElemType[MAXQSIZE];if(!Q.base) exit(flow);Q.front = Q.rear = 0;return ok;
}//获取队列长度
int QueueLength(const SqQueue& Q){return ( Q.rear - Q.front+MAXQSIZE ) % MAXQSIZE;
}//删除队列的头,并返回删除的数据
Status DeQueue(SqQueue& Q, ElemType& e){if(Q.front == Q.rear)return error;Q.front = (Q.front + 1) % MAXQSIZE;return ok;
}//在队尾进行插入
Status EnQueue(SqQueue& Q, ElemType e)
{//插入到队尾if((Q.rear + 1) % MAXQSIZE == Q.front){cout<<"队列已满\n\n"<<endl;return error;}Q.base[Q.rear] = e;Q.rear = (Q.rear+1) % MAXQSIZE;return ok;
}//打印队列
Status Print(const SqQueue& Q){int a = Q.front;if(Q.front == Q.rear){cout<<"这是个空队列\n\n"<<endl;return error;}else{while(Q.rear != a){cout<<Q.base[a]<<" ";a++;}cout<<endl;return ok;}} //判断队列是否已满
Status IsFull(SqQueue& Q){if(Q.front == (Q.rear+1) % MAXQSIZE){cout<<"队列已满,请先删除再添加\n\n"<<endl;return error;} else{return ok;}} 

2、测试文件test.cpp:

#include "Queue.h"int main(void)
{SqQueue Q;ElemType e;int n;InitQueue(Q);cout<<"         0------退出"<<endl;cout<<"          1------插入队列"<<endl;cout<<"            2------删除队列的首部"<<endl;cout<<"         3------队列的长度"<<endl; cout<<"          4------队列的数据如下"<<endl; cout<<"请输入你的操作"<<endl;cin>>n;while(1){switch(n){case 0:delete(Q.base); exit(flow);case 1:cout<<"输入一个数据"<<endl;if(IsFull(Q)){cin>>e;EnQueue(Q, e);cout<<endl;}break;case 2:DeQueue(Q, e);cout<<"删除的队首数据是:"<<e<<endl;cout<<endl;break;case 3:cout<<"队列的长度是:"<<QueueLength(Q);cout<<endl<<endl;break;case 4:cout<<"队列如下:"<<endl;Print(Q);break;}cout<<"        0------退出"<<endl;cout<<"      1------插入队列"<<endl;cout<<"        2------删除队列的首部"<<endl;cout<<"     3------队列的长度"<<endl; cout<<"      4------队列的数据如下"<<endl; cout<<"请输入你的操作"<<endl;cin>>n;cout<<"\n\n";}}

队列顺序结构C/C++实现(数据结构严蔚敏版)相关推荐

  1. 字符串静态顺序结构C/C++实现(数据结构严蔚敏版)

    1.头文件String.h #include<stdio.h> #include<stdlib.h> #include<string.h> #include< ...

  2. 队列链式结构C/C++实现(数据结构严蔚敏版)

    1.头文件Queue.h; #include<iostream> #include<iomanip>//格式控制头文件 #include<stdlib.h> usi ...

  3. [数据结构-严蔚敏版]P64循环队列-队列的顺序存储结构

    代码如下: #include <iostream> using namespace std;const int MAXQSIZE = 10;typedef int ElemType;typ ...

  4. [数据结构-严蔚敏版]P61ADT Queue的表示与实现(单链队列-队列的链式存储结构)

    代码如下: #include <iostream> using namespace std;typedef int ElemType;typedef struct QNode {ElemT ...

  5. 有关数据结构基础知识(数据结构 严蔚敏版)

    1. 数据结构是一门研究非数值计算程序设计中的操作对象 以及这些对象之间的关系和操作的学科 2. 研究包括逻辑结构和存储结构 1) 逻辑结构(从具体问题抽象出来的数学模型)分为 集合结构 线性结构 树 ...

  6. 数据结构(严蔚敏版)习题集第三章课后标新号习题答案

    #include<iostream> #include<cctype> using namespace std; /****预定义****/ #define STACK_INI ...

  7. 【数据结构 严蔚敏版】 查找基本操作

    顺序查找过程:从表中的最后一个记录开始,逐个进行记录的关键字与给定值进行比较,若某个记录的关键字与给定值相等,则查找成功,找到所查的记录:反之,若直到第一个记录,其关键字和给定值比较都不相等,则表明表 ...

  8. 线性表的C/C++实现(数据结构 严蔚敏版)

    下面的代码是项目文件:一个头文件.一个源文件.一个测试文件 1.头文件List.h: #include<iostream> using namespace std; #include< ...

  9. [数据结构-严蔚敏版]P65离散事件模拟(银行客户的离散事件驱动模拟程序)

    写这个简单玩意,居然花费了我6小时+,唉!!!,还是太菜了! 中间已经起了放弃的念头了,最后还是坚持下来了! 总结: (1)漏了p = p->next (2)队列删除元素的时候,删除的是最后一个 ...

最新文章

  1. 如何理解导远技术手册
  2. Linux有问必答-如何创建和挂载XFS文件系统
  3. ASP.NET Core分布式项目实战(oauth2 + oidc 实现 server部分)--学习笔记
  4. layui上传图片,前端直接拷代码,后端……
  5. Investigating Div-Sum Property【数位DP】
  6. implements OnClickListener
  7. MVC 3 基本操作增加修改
  8. 三.rocketmq-console
  9. matlab挠率算法,中国科学院沈阳自动化研究所
  10. java新建json 数组_Java创建JSON对象
  11. 使用python简单免费转换视频格式
  12. matlab 计算图像峰值信噪比,基于Matlab计算峰值信噪比PSNR及均方根误差MSE
  13. 计算机中心pdca,信息中心日常运维工作PDCA持续改进.docx
  14. 实验三mysql查询_实验三 数据库的查询实验
  15. 【xubuntu】 在xubuntu系统上开启自动登陆,并自动启动一个应用程序。
  16. 百位明星身份证照片被曝光
  17. 连个字体反爬都搞不定?你还说你会爬虫?看完这篇就会了。
  18. 量化岗经典面试题——纸牌游戏
  19. 如何用墨刀画出iPhone灵动岛?
  20. 淘宝发布 18 年 18 件“时代宝贝”:胶卷、万能充、MP3 等

热门文章

  1. 【PAT乙级题库】全套总结
  2. Tomcat8.5的【下载、安装、启动、各种问题结局】
  3. 1066 Root of AVL Tree (25 分)【难 / 知识点: 平衡树 未完成】
  4. 指向字符串的指针为何不能用来修改此字符串
  5. JMeter初探五-配置元件与参数化
  6. easyUI的引用方式
  7. 计算机组成原理sop,MacBERT:MLM as correction BERT
  8. 中用BBP公式计算_【真课堂】7年级信息技术:数据计算
  9. python 多进程共享变量manager_python 进程间共享数据 multiprocessing 通信问题 — Manager...
  10. 拿了 30K 的 offer!