链队的介绍与实现

文章目录

        • 1 链队定义
        • 2 链队基本操作
        • 3 代码实现

1 链队定义

队列的链式存储结构简称为链队列,它是限制仅在表头删除和表尾插入的单链表。显然仅有单链表的头指针不便于在表尾做插入操作,为此再增加一个尾指针,指向链表上的最后一个结点。

typedef int ElemType;
typedef struct queue {ElemType data;struct queue *next;
} *Queue;
typedef struct linkQueue {Queue front;Queue rear;
} *LinkQueue;

2 链队基本操作

判断队列是否为空

int IsEmpty(LinkQueue Q)
{return Q->front == Q->rear;
}

入队

第一个元素进入一个空队后,front和rear都指向这个元素,后继的元素陆续进队,队尾入,rear指针始终指向最后一个进队的元素。

void EnQueue(LinkQueue Q, ElemType e)
{Queue q = (Queue)malloc(sizeof(struct queue));q->data = e;q->next = NULL;Q->rear->next = q;Q->rear = q;
}

出队

队头出,首先进行出队判空的检查

void DeQueue(LinkQueue Q, ElemType *e)
{if (IsEmpty(Q)) {return;}Queue p = Q->front->next;*e = p->data;Q->front->next = p->next;if (Q->rear	== p) {Q->rear = Q->front;}free(p);
}

3 代码实现

#include <stdio.h>
#include <stdlib.h>
#include <time.h>typedef int ElemType;
typedef struct queue {ElemType data;struct queue *next;
} *Queue;typedef struct linkQueue {Queue front;Queue rear;
} *LinkQueue;LinkQueue InitQueue(void)
{LinkQueue Q = (LinkQueue)malloc(sizeof(struct linkQueue));Q->rear = Q->front = (Queue)malloc(sizeof(struct queue));Q->front->next = NULL;return Q;
}int IsEmpty(LinkQueue Q)
{return Q->front == Q->rear;
}void EnQueue(LinkQueue Q, ElemType e)
{Queue q = (Queue)malloc(sizeof(struct queue));q->data = e;q->next = NULL;Q->rear->next = q;Q->rear = q;
}void DeQueue(LinkQueue Q, ElemType *e)
{if (IsEmpty(Q)) {return;}Queue p = Q->front->next;*e = p->data;Q->front->next = p->next;if (Q->rear	== p) {Q->rear = Q->front;}free(p);
}int main(void)
{LinkQueue Q = InitQueue();ElemType e;scanf("%d", &e);EnQueue(Q, e);DeQueue(Q, &e);printf("%d", e);
}

运行结果:

在这里插入图片描述

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

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

相关文章

二叉树介绍与代码实现

文章目录1 树的基本概念1.1 树的形式定义1.2 树的递归定义1.3 树的基本术语1.4 二叉树的递归定义1.5 存储方法1.6 满二叉树VS完全二叉树2 二叉树的性质3 代码实现1 树的基本概念 1.1 树的形式定义 T{D&#xff0c;R} D为树T中包含n个结点的有限集合&#xff0c;R为树中结点之间…

2022先进计算七大趋势

来源&#xff1a;CBInsights 中文编辑&#xff1a;蒲蒲作为智能社会的底座、数字经济的引擎&#xff0c;算力的重要性已经被提到一个前所未有的高度。当下&#xff0c;算力的提升仍然面临着来自多个维度的挑战。不论是硬件层面还是架构层面&#xff0c;算力发展都亟需变革。先进…

类脑计算将何去何从?

来源&#xff1a;内容由半导体行业观察&#xff08;ID&#xff1a;icbank&#xff09;编译&#xff1a;nature.摘要类脑计算新技术有望通过完全不同的方式处理信息&#xff0c;能效极高&#xff0c;并能处理我们加速产生的大量非结构化和嘈杂的数据。为了实现这一承诺&#xff…

1 计算机网络体系结构与OSI参考模型

文章目录1 计算机网络概述1.1 计算机网络概念1.2 计算机网络的分类2 OSI 七层参考模型应用层表示层会话层传输层网络层数据链路层物理层3 OSI参考模型与网络排错4 OSI参考模型与网络安全5 TCP/IP协议和OSI参考模型1 计算机网络概述 1.1 计算机网络概念 计算机网络概念&#xf…

一个故事讲完 CPU 的工作原理

来自&#xff1a;知乎 作者&#xff1a;柳两丛 www.zhihu.com/question/40571490/answer/718942643上二年级的小明正坐在教室里。现在是数学课&#xff0c;下午第一节&#xff0c;窗外的蝉鸣、缓缓旋转的吊扇让同学们昏昏欲睡。此时&#xff0c;刘老师在黑板上写下一个问题&a…

2 计算机网络性能指标

文章目录速率带宽吞吐量时延时延带宽积往返时间网络利用率速率 连接在计算机网络上的主机在数字信道上传送数据位数的速率&#xff0c;也称为data rate或bit rate。 单位是b/s, kb/s, Mb/s, Gb/s. 比特&#xff08;bit&#xff09;是计算机中数据量的单位&#xff0c;也是信息论…

Anthropic 公司研究人员从简单的 AI 中获得关于 Transformer 的新理解

来源&#xff1a;ScienceAI编辑 &#xff1a;橘子皮在过去的两年里&#xff0c;人工智能程序的语言流畅度达到了惊人的水平。其中最大和最好的都是基于 2017 年发明的称为 Transformer 的架构。它以方程式列表的形式作为程序遵循的一种蓝图。但除了这个简单的数学大纲之外&…

3 物理层 数据通信基础知识 奈氏准则与香农定理 物理层传输介质 信道复用技术

文章目录1 物理层基本概念2 数据通信的基础知识2.1 典型的数据通信系统模型2.2 与通信相关的几个术语2.3 有关信道的几个概念2.4 基带(baseband)信号和带通(band pass)信号2.5 几种最基本的调制方法2.6 网卡传送信号时的编码格式2.7 信道的极限容量2.8 信道能够通过的频率范围2…

向真实世界应用进军:持续自监督学习的挑战

来源&#xff1a;图灵人工智能编译&#xff1a;OGAI编辑&#xff1a;陈彩娴在 Yann Lecun 等人的推动下&#xff0c;自监督学习成为了深度学习领域最受瞩目的技术之一。互联网世界源源不断产生的数据流无疑是充分发挥自监督学习能力的最佳土壤。然而&#xff0c;将自监督学习应…

人类“超级大脑”背后的规模法则

来源&#xff1a;集智俱乐部作者&#xff1a;郭瑞东 编辑&#xff1a;邓一雪摘要不同动物的大脑具有不同形状和大小。大自然赋予像人类这样脑容量大的灵长类动物比例较大的大脑皮层。然而&#xff0c;比较研究表明&#xff0c;分配给大脑白质连接&#xff08;大脑区域间长距离沟…

Meta AI 宣布对人脑和语言处理进行长期研究

来源&#xff1a;ScienceAI编辑&#xff1a;绿萝人类的大脑长期以来一直是一个难题——它是如何发展的&#xff0c;它如何继续进化&#xff0c;它被开发和未开发的能力。人工智能 (AI) 和机器学习 (ML) 模型也是如此。正如人类大脑创建的 AI 和 ML 模型日益复杂一样&#xff0c…

10年100亿!“新基石研究员”项目正式发布

来源&#xff1a; 中国科学报文&#xff1a;《中国科学报》记者 赵广立4月30日&#xff0c;《中国科学报》获悉&#xff0c;一项总投入达100亿元、面向基础研究领域的社会资助项目——“新基石研究员项目”正式发布。在国家有关部门的指导下&#xff0c;“新基石研究员项目”由…

代表地球文明精髓的E=mc²,为什么被称为“死亡方程式”

来源&#xff1a;大数据文摘有这样一条方程式&#xff0c;原腾讯副总裁吴军博士说&#xff0c;如果地球毁灭&#xff0c;要在一张名片上写下地球文明的全部精髓&#xff0c;他会写下三个公式&#xff0c;其中就包含这个方程式&#xff1b;搜狐CEO张朝阳专门开了堂线下物理课&am…

北交桑基韬:“超”人的机器学习,非语义特征的得与失

来源&#xff1a;AI科技评论作者&#xff1a;桑基韬整理&#xff1a;维克多人工智能目前最大的“拦路虎”是不可信赖性&#xff0c;以深度学习为基础的算法&#xff0c;在实验室环境下可以达到甚至超过人类的水平&#xff0c;但在很多实际应用场景下的性能无法保证&#xff0c;…

手把手教你搭建一个中式菜谱知识图谱可视化系统

手把手教你搭建一个中式菜谱知识图谱可视化系统中式菜谱知识图谱1、系统功能2、先来看看效果实体间关联关系及实体信息显示不同类型实体开关显示搜索功能展示3、系统实现流程3.1 数据爬取3.2 D3可视化中式菜谱知识图谱 今天分享一个自己从数据爬取到d3可视化的中式菜谱知识图谱…

AI数字人未来十大展望

来源 &#xff1a;商汤智能产业研究院编辑 &#xff1a;刘振航从电影中逼真的CG人物&#xff0c;到能够与我们面对面进行互动的智能服务助手&#xff0c;数字人会经历几级进化&#xff1f;数字人正在从有颜无智的“CG数字模特”&#xff0c;进化为可提高生产力、驱动创新服务的…

知识图谱最新权威综述论文解读:开篇部分

论文地址&#xff1a;http://arxiv.org/abs/2002.00388 这篇综述是数据科学权威 Philip S. Yu 团队对知识图谱领域的最新综述论文&#xff0c;论文从知识图谱的发展历史、知识表示学习、知识获取、知识应用、未来研究方向等方面描述了知识图谱的全局。 首先&#xff0c;咱们先…

耗资52亿美元,历时15年,人类有史以来建造的最复杂机器

来源&#xff1a;世界先进制造技术论坛欧洲大型强子对撞机是现在世界上最大、能量最高的粒子加速器&#xff0c;是一种将质子加速对撞的高能物理设备&#xff0c;英文名称为LHC。LHC是人类迄今建造的最大最复杂的科学设备&#xff0c;它的建设历时15年&#xff0c;耗资52亿美元…

贝叶斯深度学习:一个统一深度学习和概率图模型的框架

来源&#xff1a;AI科技评论 作者&#xff1a;王灏整理&#xff1a;维克多人工智能&#xff08;AI&#xff09;的进展显示&#xff0c;通过构建多层的深度网络&#xff0c;利用大量数据进行学习&#xff0c;可以获得性能的显著提升。但这些进展基本上是发生在感知任务中&#…

知识图谱最新权威综述论文解读:知识表示学习部分

知识图谱最新权威综述论文解读&#xff1a;知识表示学习部分知识图谱表示学习1 表示空间1.1 Point-wise空间1.2 复数向量空间​1.3 高斯分布1.4 流形和群2 打分函数2.1 基于距离的打分函数​2.2 语义匹配模型&#xff1a;​3 编码模型3.1 线性/双线性模型3.2 张量分解模型3.3 神…