链队列的入队出队

数据结构——链队列的初始化、入队、出队、销毁队列 目录: 1、构造空队列 2、链队列基本操作——入队 3、链队列的基本操作——出队 4、销毁队列 队列是先进先出的线性表。它只允许在表的一端进行插入,而在另一端删除元素。 在队列中,允许插入的一端叫做队尾,允许删除的一端叫做对头。 队列的示意图: 栈和队列都是限制存取点的线性结构。 用链表表示... 阅读详情
#include<stdio.h>
#include<malloc.h>
typedef struct	QNode {
	int data;
	struct	QNode* next;
}*QueuePtr;

typedef struct {
	QueuePtr front;
	QueuePtr rear;
}LinkQueue;

void InitQueue(LinkQueue& Q) {
	Q.front = (QueuePtr)malloc(sizeof(QNode));
	if (!Q.front) {
		return;
	}
	Q.front->data = 0;
	Q.rear = Q.front;
	Q.front->next = NULL;
}

void EnQueue(LinkQueue& Q, int data) {//队尾入队列
	QNode* P;
	P = (QueuePtr)malloc(sizeof(QNode));
	if (!P) {
		return;
	}
	P->next = NULL;
	P->data = data;
	Q.rear->next = P;
	Q.rear = P;
}

void DeQueue(LinkQueue& Q, int& data) {
	if (Q.front == Q.rear) {
		return; // 队列为空,无法出队
	}
	QueuePtr p = Q.front->next;
	data = p->data;
	Q.front->next = p->next;
	if (Q.rear == p) { // 如果出队后队列为空
		Q.rear = Q.front; // 需要将 rear 指向头结点
	}
	free(p);
}

void print(LinkQueue Q) {
	QNode* P = Q.front->next;
	while (P != NULL) {
		printf("%d\n", P->data);
		P = P->next;
	}
	printf("---------------------\n");
}
int main() {
	LinkQueue Q;
	int a;
	InitQueue(Q);
	for (int i = 1; i <= 10; i++) {
		EnQueue(Q, i);
	}
	print(Q);
	DeQueue(Q, a);
	print(Q);
	for (int i = 0; i <= 3; i++) {
		DeQueue(Q, a);
	}
	print(Q);
}

建立一个链队列,实现队列的入队和出队操作。 #ifndef linkqueue_H  #define linkqueue_H  struct node  {      int data;      node *next;  };  class linkqueue  {  private:      node *front,*rear;  public:      linkqueue();      ~linkqueue();      ... 阅读详情

相关推荐

链队列的初始化、入队、出队及打印(数据结构)

#define _CRT_SECURE_NO_WARNINGS #include #include #define OK 1 #define ERROR 0 typedef int Status; typedef int QElemType; using namespace std; typedef struct QNode //结点结构 { QElemType data; struct

qiweizhihong的博客 1788

链队列的出队,入队

链队列 定义:采用链式存储结构实现的队列。 通常采用单链表来实现,因此结构与单链表类似。 由于队列的插入和删除操作分别在表的两端进行,所以需要两个分别指向对头和队尾的指针,即队头指针front和队尾指针rear。 图中头指针front和尾指针rear是两个独立的指针变量,从结构上考虑,一般将头指针和尾指针的变量front、rear封装在一个结构类型中作为链队列的数据类型。 typedef int...

木辛木又 1万+

直播间人气协议算法:从批量操作到数据接口的自动化实现

本文深入解析直播间人气协议算法的实现原理与技术细节,涵盖批量账号管理、IP代理方案、用户行为模拟算法及平台数据接口调用策略。通过逆向工程分析通信协议,结合算法设计实现自动化流量提升,同时探讨风控规避与系统性能优化方案,为开发者提供合规的技术实践参考。

weixin_30505225的博客 519

链队列的入队、出队算法

#include<stdio.h> #include<stdlib.h> typedef struct Qnode { int data; struct Qnode *next; }Qnode; typedef struct { struct Qnode *front; struct Qnode *rear; }LinkQueue; LinkQueu...

weixin_45634365的博客 5087

360加固DEX解密与ELF修复技术解析

本文深入解析360加固的DEX解密与ELF修复技术,详细介绍了其多层保护机制、Java层入口分析、Native层加载流程及反调试绕过技巧。通过RC4和zlib解密技术,结合Frida工具实现内存Dump和ELF文件修复,为逆向工程师提供实用解决方案。

weixin_29327525的博客 511

ULN2003驱动28BYJ-48步进电机详解(附:51 32代码讲解)

本文介绍了28BYJ-48步进电机的驱动原理以及注意事项,并展示了极简 32 51驱动代码

qq_41818650的博客 1万+

链队列的入队、出队

// test_demo.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #include "stdio.h" #include "windows.h" #define QueueSize 100 /*假定预分配的队列空间最多为100个元素*/ typedef char DataType ; /*假定队列元素的数据类型为字符*/ typed

xujianglun的专栏 2059

CKA考试实战指南--从备考到通关的完整攻略

本文提供了一份全面的CKA考试实战指南,涵盖从备考规划、资源选择到高效练习环境搭建的全过程。重点解析了考试核心内容,特别是占分30%的故障排除难点,并分享了集群升级、etcd备份等高频考点的突破技巧与临场实战策略,帮助考生系统掌握Kubernetes实操技能,顺利通过认证。

weixin_28839549的博客 490

链队列、循环队列的实现(初始化、出队、入队、取队头元素、判空)

链队列 #include #include //结点的结构体定义 typedef int DataType; typedef struct qnode { DataType data; struct qnode *next; }LQNode; //定义头指针和尾指针 typedef struct { LQNode *front; LQNode *rear; }LQueue; //初始

七夜 1万+

c764-基于Vue的实时温湿度监控系统

🌟 毕业设计指导交流 🌟 同学们好!作为一名计算机专业的技术爱好者,我在毕业设计领域积累了一些经验,希望能和大家分享交流。从选题到答辩,欢迎一起探讨技术问题。💡 技术方向: 熟悉Java全栈(SSM/Spring Boot)、Python数据分析、微信小程序/安卓开发等技术栈,可以互相学习项目开发经验。📂 学习资源: 整理了一些开源项目案例(含代码和文档),需要参考的同学可以留言讨论,也欢迎分享你的项目经验。🛠 交流内容:✨ 欢迎在评论区留言讨论,一起进步!记得遵守社区规范,保持学术

weixin_39513710的博客 1070

ENVI-met新手必看:从零开始创建城市微气候模型(附详细步骤+底图制作技巧)

本文为ENVI-met新手提供从零开始创建城市微气候模型的详细指南,包括环境准备、参数配置、底图制作技巧和三维模型构建步骤。特别针对常见问题提供解决方案,帮助初学者快速掌握城市微气候模拟技术,提升建模效率。

weixin_29269441的博客 407

【链表】链队列入队与出队

【链表】链队列入队与出队

weixin_54667422的博客 3478

别再纠结高边低边了!用TI BQ76952设计两轮车BMS,手把手教你选对架构(附电路图)

本文深度解析基于TI BQ76952芯片的电动两轮车BMS设计策略,涵盖高边/低边驱动选择、四种基础架构的电流路径分析及选型决策矩阵。通过实战案例分享,帮助工程师优化BMS架构,提升系统可靠性和成本效益,特别适合电摩和共享单车应用场景。

weixin_42665255的博客 514

链队列的初始化,入队,出队,取对头元素功能实现

链队列是一种基于链表实现的队列结构,它通过移动头指针和尾指针来实现出队和入队。链队列包含多个结点,每个结点都有一个数据域和一个指向下一节点的指针。当要将元素添加到链队列时,只需新建一个结点,并将该结点加入到链表末尾即可,取出元素时,则只需获取链表头节点中的数据域,并释放该节点的空间。二、初始化图解printf("创建成功!\n");

naozibuok的博客 3621

如何将 Fiori Elements Object Page Header 工具栏里按钮用 JavaScript 代码设置成禁用状态

本文介绍了如何在SAP Fiori Elements应用中动态控制Object Page工具栏按钮的可用状态。通过UI5 Inspector工具分析发现,这些按钮的enabled属性都双向绑定到/ui/enabled模型字段。在StatusExt.controller.js中,通过获取按钮ID前缀拼接完整控件ID,使用setEnabled(false)方法即可禁用按钮。关键点包括:1)使用extensionAPI获取视图ID前缀;2)注意事件回调中的this上下文绑定;3)通过修改模型字段可同步更新所有绑定

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 375

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

链队列的初始化、入队、出队等操作实现

链队列的初始化、入队、出队等基本操作实现代码如下:#include<iostream>using namespace std;#define TRUE 1#define FALSE 0//链队列定义typedef struct Node{ int data;//数据域 struct Node *next;//指针域}LinkQueueNode;typedef ...

weixin_34352005的博客 2402

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

C++链队:创建链式队列/初始化、入队、出队、销毁、取队头

链队列:队列的链接存储结构称为链队列,通常用单链表表示。其结点的结构与单链表的结点结构相同。根据队列的先进先出特性,为了操作上的方便,设置队头指针指向链队列的头结点,队尾指针指向终端结点。C++链队列的实现: 1.创建链式队列 typedef int DataType; struct Node{ DataType data; Node *next; }; class LinkQueue{ public: LinkQueue();//初始化空的链表队列 ~LinkQueue();//释

呵呵哒!的博客 5485

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

链队列的初始化 判断队列是否为空 入队列 出队列

链队列的初始化 判断队列是否为空 入队列 出队列 等等操作先上个示意图(图片来源 严蔚敏版数据结构) 可能更好理解 1 // 2 // main.cpp 3 // WWLinkQueueBasic 4 // 5 // Created by Live on 2017/8/22. 6 // Copyright © 2017年 ITCoderW. All ...

weixin_34233421的博客 1944

链队列--初始化,入队,出队

1. 用链表实现的队列,而队列可以满足先进先出的结构。2. 链队列由一个个节点组成,每个节点包含一个数据域一个指向下一个节点的指针域。需要front和rear指针分别管理队头和队尾,修改头尾指针即可进行出队入队操作,保证时间复杂度为O(1)。3. 入队时尾指针后移,出队时头指针后移。4. 判断队列是否为空的条件: front == rear;front->next == NULL(带头节点)5. 顺序队列--数组实现,但链队列更灵活。

2401_89034118的博客 442

实现链队列的初始化、入队和出队操作

编程实现链队列的初始化、入队和出队操作。 #include&amp;lt;stdio.h&amp;gt; #include&amp;lt;iostream&amp;gt; #include&amp;lt;stdlib.h&amp;gt; #define OK 1 #define OVERFLOW 2 #define ERROR -1 using namespace std; typedef int QElemType; typedef i

ancientear的博客 1万+

【C++】数据结构之链队列(入队、出队、查找、翻转)

要求: 写一个带有头结点的链队列 实现入队、出队、查找、翻转功能 思路 初始化队列,使front指针和rear指针同时指向一个空间 入队:新建一个链节空间,把数据放入其中,rear指针指向的下一个链节为该空间。 出队:删去头指针指向的链节,返回元素数据。 查找:逐个比较链节内容,若存储的数据和查找元素相同,则为查找成功,返回1,反之返回0; 翻转队列:用三个指针pre、pcur、pnext分...

RouTine 4070

C语言|顺序队列和链队列|定义,初始化,清空,判空、判满、入队、出队,求元素个数等

顺序队列和链队列的相关操作顺序队列完整代码分解代码顺序队列定义顺序队列的初始化顺序队列的销毁顺序队列的清空顺序队列的判空顺序队列的判满顺序队列入队顺序队列出队顺序队列求元素个数链队列完整代码分解代码结点类型的定义链队列的定义链队列的初始化链队列的判空链队列的入队链队列的出队取链队列的队头元素 顺序队列 完整代码 #include<stdio.h> #include<stdlib.h> typedef int Status; typedef int QueueEntry; #defi

weixin_48709737的博客 6104

链队列的初始化,入队,出队,计算队的长度,遍历链队销毁队列

#include "stdio.h" #include "stdlib.h" typedef struct node{ int data; struct node *next; }*pnode; typedef struct queue{ pnode front; pnode rear; }*pqueue; //初始化队列 pqueue init(pqueue

beyond161的专栏 1万+

C语言数据结构链队列(创建、入队、出队、取对头元素、遍历)

/* *链队列的相关操作 *创建一个rear和front指针的结构体 *创建一个链表的结构体 *初始化时rear和front指向head指针 *采用尾插法创建链表 *操作 (初始化、创建、入队 、出队、取对头元素、遍历) */ #include<stdio.h> #include<stdlib.h> #include<time.h> #include<st...

Algorithm_Soul 8767

链队列(入队和出队操作)

出队操作:创建一个节点p指向队列的第一个节点,p=front->next,front->next=p->next,需要注意的是如果只有一个节点时,出队后,rear=front,两个指针都指向头结点。入队操作:创建一个新节点p存储入队元素,rear->next=p,rear=p。链队列有两个指针:front指向头结点,rear指向最后一个节点。链队列的特点:先进先出。

qq_73931224的博客 818
上一篇: 链栈的入栈出栈
下一篇: 数据结构课设迷宫问题
format_push
博客等级 码龄4年 104粉丝 80原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值