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

在这里插入图片描述

在这里插入图片描述

代码如下:

#include <iostream>
using namespace std;typedef int ElemType;typedef struct QNode
{ElemType data;QNode *next;
}QNode ,*QueuePtr;typedef struct
{QueuePtr front;QueuePtr rear;
}LinkQueue;bool initQueue(LinkQueue &q)
{q.front = q.rear = new QNode;if (!q.front) return false;q.front->next = nullptr;return true;
}bool destroy(LinkQueue &q)
{while (q.front){q.rear = q.front->next;delete q.front;q.front = q.rear;}q.front = q.rear = nullptr;return true;
}bool clearQueue(LinkQueue &q)
{QNode *p = q.front->next;QNode *s = nullptr;while (p){s = p;p = p->next;delete s;}q.rear = q.front;return true;
}bool queueEmpty(LinkQueue q)
{if (q.front == q.rear) return true;return false;
}int queueLength(LinkQueue q)
{int j = 0;QNode *p = q.front->next;while (p){j++;p = p->next;}return j;
}bool getHead(LinkQueue q, ElemType &e)
{if (q.front == q.rear) return false;e = q.front->next->data;return true;
}bool enQueue(LinkQueue &q, ElemType e)
{QNode *p = new QNode;if (!p) return false;p->data = e;p->next = nullptr;q.rear->next = p;q.rear = p;return true;
}bool deQueue(LinkQueue &q, ElemType &e)
{if (q.front == q.rear) return false;QNode *p = q.front->next;q.front->next = p->next;if (q.rear == p)q.rear = q.front;delete p;return true;
}void vis(ElemType e)
{cout << e << " ";
}void queueTraverse(LinkQueue q, void(*visit)(ElemType))
{QNode *p = q.front->next;while (p){visit(p->data);p = p->next;}
}int main() {LinkQueue q;initQueue(q);int n;int a;cin >> n;for (int i = 0; i < n; i++){cin >> a;enQueue(q, a);}queueTraverse(q, vis);cout << endl;deQueue(q, a);deQueue(q, a);queueTraverse(q, vis);cout << endl;cout << queueLength(q) << endl;return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/309258.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SpringBoot项目新手——问题疑惑及解决笔记

文章目录Java中Override的作用ResponseBody与RestController的作用与区别Autowired与Resource异同&#xff1a;requestmethod.get和post的区别RequestParam注解使用1、作用&#xff1a;2、语法&#xff1a;3、测试环境&#xff1a;JSON 基本使用自定义注解持续更新中。。。Java…

基于 abp vNext 和 .NET Core 开发博客项目 - Blazor 实战系列(七)

系列文章使用 abp cli 搭建项目给项目瘦身&#xff0c;让它跑起来完善与美化&#xff0c;Swagger登场数据访问和代码优先自定义仓储之增删改查统一规范API&#xff0c;包装返回模型再说Swagger&#xff0c;分组、描述、小绿锁接入GitHub&#xff0c;用JWT保护你的API异常处理和…

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

代码如下: #include <iostream> using namespace std;const int MAXQSIZE 10;typedef int ElemType;typedef struct {ElemType *base;int front;int rear; }SqQueue;bool initQueue(SqQueue &q) {q.base new ElemType[MAXQSIZE];if (!q.base) return false;q.fron…

替罪羊树详解

替罪羊树详解 刚开始学习平衡树。可是我太弱了弄不懂有旋转操作的treap和splay&#xff0c;这时候学习可以不用旋转操作——替罪羊树的平衡树就很适合。这个名字取得比较玄乎&#xff0c;一眼看上去并不知道有什么卵用&#xff0c;但是&#xff0c; 如果你是刚学平衡树的新手&…

BeetleX.FastHttpApi之Vuejs扩展

非常喜欢用vuejs,但又不想花时间去搞nodejs和webpack之类的&#xff0c;所以才有了BeetleX.FastHttpApi.VueExtend这样一个组件&#xff1b;组件的主要功能就是可以实现在vs.net中编写*.vue并直接引用到服务中&#xff0c;这样对于我这个习惯在vs.net写服务应的带来极大的方便性…

C++的new、delete需要注意的一点:使用危险函数导致的越界CRT detected that the application wrote to memory after end of heap

new、delete需要注意的一个特性 正常情况new一个数组之后&#xff0c;用delete释放是没有问题的。但是当对new得到的堆区进行越界的写入操作&#xff08;读操作不会&#xff09;将会导致delete时出现段错误&#xff0c;无法进行删除。如下面的程序所示&#xff1a; 数组大小只…

算法:tips

ceil函数&#xff1a;返回大于或者等于指定表达式的最小整数 floor函数&#xff1a;返回计算不大于给定值的最大整数 #include<stdio.h> #include<math.h> int main(void) {double number123.45;double down,up;downfloor(number);upceil(number);printf("o…

数据结构与算法专题——第四题 字符串相似度

这篇我们看看 最长公共子序列 的另一个版本&#xff0c;求字符串相似度(编辑距离)&#xff0c;我也说过了&#xff0c;这是一个非常实用的算法&#xff0c;在DNA对比&#xff0c;网页聚类等方面都有用武之地。一&#xff1a;概念对于两个字符串 A 和 B&#xff0c;通过基本的增…

[数据结构-严蔚敏版]P71串的抽象数据类型的定义

代码如下: #include <iostream> #include <string> using namespace std;typedef struct {char *ch;int length; }String;bool initString(String &s) {s.ch nullptr;s.length 0;return true; }bool strAssign(String &s, const char *ch) {int len st…

三分钟学会.NET Core Jwt 策略授权认证

一.前言大家好我又回来了&#xff0c;前几天讲过一个关于Jwt的身份验证最简单的案例&#xff0c;但是功能还是不够强大&#xff0c;不适用于真正的项目&#xff0c;是的&#xff0c;在真正面对复杂而又苛刻的客户中&#xff0c;我们会不知所措&#xff0c;就现在需要将认证授权…

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

写这个简单玩意&#xff0c;居然花费了我6小时&#xff0c;唉!!!&#xff0c;还是太菜了! 中间已经起了放弃的念头了&#xff0c;最后还是坚持下来了! 总结&#xff1a; (1)漏了p p->next (2)队列删除元素的时候&#xff0c;删除的是最后一个忘记特判。 (3)写的时候太急了…

[温故知新] 编程原则和模式

写了这么多年代码&#xff0c;依旧做不好一个项目做好一个项目是人力、产品、业务、技术、运营的结合&#xff0c;可能还叠加一点时机的因素&#xff0c;就我们码农而言&#xff0c;工作就是搬砖&#xff0c;实现产品&#xff0c; 给业务提供支撑。“给祖传代码加 BUG 修 BUG”…

[C语言] va_start和va_end详解

在C中&#xff0c;当无法列出传递函数的所有实参的类型和数目时&#xff0c;可以用省略号指定参数表。例如&#xff1a; void foo(...); void foo(parm_list,...);函数参数的传递原理 函数参数是以栈的形式存取&#xff0c;从右至左入栈。 参数的内存存放格式&#xff1a;参数…

IntelliJ IDEA中快捷键大全+出现的问题

参照 文章目录1.Ctrl2.Alt3.Shift4.Ctrl Alt5.Ctrl Shift6.Alt Shift7.Ctrl Shift Alt8.其他idea如何将设置包名展开当出现右键&#xff0c;没有创建包选项时idea没有maven图标安装mysql和idea配置idea查看代码的最近修改人及时间1.Ctrl 快捷键介绍Ctrl F在当前文件进行…

基于 abp vNext 和 .NET Core 开发博客项目 - Blazor 实战系列(八)

系列文章使用 abp cli 搭建项目给项目瘦身&#xff0c;让它跑起来完善与美化&#xff0c;Swagger登场数据访问和代码优先自定义仓储之增删改查统一规范API&#xff0c;包装返回模型再说Swagger&#xff0c;分组、描述、小绿锁接入GitHub&#xff0c;用JWT保护你的API异常处理和…

[数据结构-严蔚敏版]P95矩阵压缩-特殊矩阵的存储(对称矩阵,三角矩阵)

对称矩阵的存储&#xff1a; 代码如下: #include <iostream> using namespace std;int main() {int n;cin >> n;int *a;a new int[(n*(n 1)) / 2];for (int i 0; i < (n*(n 1)) / 2; i){cin >> a[i];}for (int i 1; i < n; i){for (int j 1; j…

Java Properties 类

Properties 继承于 Hashtable。表示一个持久的属性集.属性列表中每个键及其对应值都是一个字符串。 Properties 类被许多 Java 类使用。例如&#xff0c;在获取环境变量时它就作为 System.getProperties() 方法的返回值。 Properties 定义如下实例变量.这个变量持有一个 Prop…

微前端与项目实施方案研究

一、前言微前端(micro-frontends)是近几年在前端领域出现的一个新概念&#xff0c;主要内容是将前端应用分解成一些更小、更简单的能够独立开发、测试、部署的小块&#xff0c;而在用户看来仍然是内聚的单个产品。微前端的理念源于微服务&#xff0c;是将庞大的整体拆成可控的小…

ASP.NET Core分布式项目实战(集成ASP.NETCore Identity)--学习笔记

任务24&#xff1a;集成ASP.NETCore Identity之前在 Index 页面写了一个 strong 标签&#xff0c;需要加个判断再显示&#xff0c;不然为空没有错误的时候也会显示if (!ViewContext.ModelState.IsValid) {<strong>Error""</strong><div asp-validatio…

[数据结构]链表中销毁和清空的区别

链表是一个很基本的数据结构&#xff0c;其他的数据结构&#xff08;如&#xff1a;栈、队列、二叉树等&#xff09;都可以用链表来实现。 销毁&#xff1a;是先销毁了链表的头&#xff0c;然后接着一个一个的把后面的销毁了&#xff0c;这样这个链表就不能再使用了&#xff0…