c语言队列问题0

rna90072013.10.25浏览15次分享举报

#include#include#define MaxSize 100typedef char QueueElementType;typedef struct { QueueElementType data[MaxSize]; QueueElementType *base; int rear; int front;}SeqQueue; SeqQueue InitQueue() { //初始化队列 Se... #include#include#define MaxSize 100typedef char QueueElementType;typedef struct { QueueElementType data[MaxSize]; QueueElementType *base; int rear; int front;}SeqQueue;

SeqQueue InitQueue() { //初始化队列 SeqQueue Q; Q.base = (QueueElementType*)malloc(MaxSize*sizeof(QueueElementType)); if(!Q.base) { printf("内存不够\n"); exit(0); } Q.rear = 0; Q.front = 0; return Q;}

int QueueEmpty(SeqQueue Q) { //判断队列是否空 return(Q.rear == Q.front)? 1:0;}

int QueueFull(SeqQueue Q) { //判断队列是否满 return (Q.front == (Q.rear+1)%MaxSize)? 1:0;}

SeqQueue EnQueue(SeqQueue Q,QueueElementType x) { //入队操作 if(QueueFull(Q)) { printf("队满,入队失败\n"); } else { *(Q.base+Q.rear) = x; Q.rear = (Q.rear+1) % MaxSize; printf("元素%c入队\n",x); } return Q;}

SeqQueue DeQueue(SeqQueue Q,QueueElementType *e) { //出队操作 if(Q.front == Q.rear) { printf("队空,出队失败\n"); } else { *e = *(Q.base + Q.front); Q.front = (Q.front + 1) % MaxSize; } return Q;}

QueueElementType GetHead(SeqQueue Q) { //读取队头元素 if(QueueEmpty(Q)) { printf("队空,读取队头元素失败\n"); return 0; } else return *(Q.base+Q.front);}

int Length(SeqQueue Q) { //队列元素个数 return(Q.rear - Q.front);}

void Display(SeqQueue Q) { //遍历队列 int i; for(i = Q.front; i < Q.rear; i++) { printf(" %c ",*(Q.base+i)); }

}

void Destroy(SeqQueue Q) { //释放队列 free(Q.base); printf("队列释放完毕\n");}

void main() { SeqQueue Q; QueueElementType e; printf("初始化队列\n"); Q = InitQueue(); if(QueueEmpty(Q)) { printf("队列为空\n"); } else { printf("队列不为空\n"); } printf("进队元素a,b,c\n"); Q = EnQueue(Q,'a'); Q = EnQueue(Q,'b'); Q = EnQueue(Q,'c'); printf("出队元素并且输出该元素\n"); DeQueue(Q,&e); printf("出队元素为:%c\n",e); printf("该队列中元素个数:%d\n",Length(Q)); printf("进队元素d,e,f\n"); Q = EnQueue(Q,'d'); Q = EnQueue(Q,'e'); Q = EnQueue(Q,'f'); printf("该队列中元素个数:%d\n",Length(Q)); printf("输出出队序列\n"); Display(Q); printf("\n释放队列\n"); Destroy(Q);}

展开 为什么 长度是3 不是2 为什么没出队成功 求解答 详细

字符串队列c语言,c语言队列问题相关推荐

  1. 字符串队列c语言,C语言实现循环队列(队列可存储字符串)

    项目原因,需要写一个队列来存储串口实时输出的字符串.看了网上很多博文和一些数据结构的数据,给的例子都是实现对单个数字或者字符的队列操作,并没有实现在队列中存储字符串.这里分享一种可以实现的方法. 关于 ...

  2. Algorithm:C++语言实现之队列相关算法(最短路径条数问题、拓扑排序)

    Algorithm:C++语言实现之队列相关算法(最短路径条数问题.拓扑排序) 目录 队列 1.最短路径条数问题 2.拓扑排序 队列 1.最短路径条数问题

  3. 数据结构 - 队列简介 及 1个简单的c语言链式队列代码实现

    1. 队列的定义 所谓队列(queue)就是一种能实现"先进先出"的一种线性存储结构. 跟栈有点类似,  例如栈只有1个出入口, 任何元素进入或者离开栈都必须经过同1个出入口(栈顶 ...

  4. C语言实现queue队列的算法(附完整源码)

    C语言实现queue队列的算法 C语言实现queue队列的算法完整源码(定义,实现,main函数测试) C语言实现queue队列的算法完整源码(定义,实现,main函数测试) #ifndef QUEU ...

  5. 数据结构——链式队列解析(C语言版)

    摘自:数据结构学习--链式队列解析(C语言版) 作者:正弦定理 发布时间:2020-11-26 21:07:08 网址:https://blog.csdn.net/chinesekobe/articl ...

  6. c语言中优先级队列_C ++中的优先级队列

    c语言中优先级队列 A Priority Queue is a variant of a Queue such that it's elements are ordered based on thei ...

  7. c语言循环队列的销毁,C语言循环队列

    参考自维基百科: 含测试代码,详细注释: #include #include #include /*循环队列 C语言实现 *2011-04-28 *liliming123@sina.com */ #i ...

  8. c语言数据结构之队列

    前言 不同于栈,队列是一个先进先出的数据结构,规定数据节点从队列尾插入,从队列头取出,禁止对头尾两端以外的数据进行操作.队列可以分为顺序队列和循环队列. C语言数据结构之单链表 C语言数据结构之双向链 ...

  9. C语言实现环形队列基本操作

    C语言实现环形队列基本操作(以简单排队问题为例) 通过调用简单函数实现顺序表的相关操作.代码编译环境为VS2019 16.9.4.因为VS的某些原因,scanf写为了scanf_s,作用是一样的,在其 ...

  10. c语言模拟多级反馈队列调度算法实验报告,多级反馈队列调度算法的实现-20210323055826.docx-原创力文档...

    This model paper was revised by LINDA on December 15, 2012. This model paper was revised by LINDA on ...

最新文章

  1. 2018年计算机相关学术会议,2018年信息与计算机技术国际学术会议(IEEE出版)
  2. cas无法使用_一文彻底搞懂CAS实现原理
  3. 泛函分析——有界线性算子和函数
  4. easylog 使用_Easyloggingpp的使用
  5. (转)C# WebApi 身份认证解决方案:Basic基础认证
  6. Apache Flink和Kafka入门
  7. 雷军宣布红米 Redmi 品牌独立,这对小米意味着什么?
  8. rocketMQ基本架构简介
  9. java虚拟机之二虚拟机内存结构
  10. Fedora进入超级用户的方法
  11. android适配规则(一)
  12. python实现二分搜索binary_search
  13. 【校招】测试开发岗-高频面试题总结
  14. 2015062001 - 诸葛亮
  15. 得力打印机(DL888D型号)Linux对接——Java+C版
  16. Python绘制正弦、余弦函数图像
  17. JAVA表示姓名和对应的出生日期
  18. 一个遮罩层怎么遮罩两个图层_遮罩效果全解(13种方法)
  19. JavaSE第2天练习题(运算符,选择流程控制语句)
  20. C++播放音频mav文件和mp3文件

热门文章

  1. 基于PHP实现高性能敏感词过滤算法
  2. python实战项目(Django技术点)
  3. OPENCV2.4.7+VS2010+海康威视摄像头
  4. Activiti6--入门学习--基础知识环境搭建部署
  5. 已知两点坐标和三边长度,求三角形第三点的坐标
  6. 分享gif录屏与gif图片合成工具
  7. 【Unity3D】动态更换天空盒(场景不受天空盒影响 等问题)
  8. docker部署svnadmin进行权限管理
  9. win7 计算机定时关机脚本,定时关机命令,教您怎么使用命令行定时关机
  10. 解决 Win 10 输入法(仅桌面)的问题