13.7队列的实战(通过链表实现)

学个二叉树,又要用上队列的代码,上学期学的队列忘光光了,这不没办法回来复习咯

 代码:

#include <stdio.h>
#include <stdlib.h>typedef int ElemType;
typedef struct LinkNode{ElemType data;struct LinkNode *next;
}LinkNode;
typedef struct{LinkNode *front,*rear;  //  链表头,链表尾,也可以称队头,队尾
}LinkQueue; //先进先出//队列的初始化,使用的是带头结点的链表来实现的
void InitQueue(LinkQueue &Q)
{Q.front=Q.rear= (LinkNode *)malloc(sizeof(LinkNode));Q.front->next=NULL;
}
//入队
void EnQueue(LinkQueue &Q,ElemType x)
{LinkNode *s=(LinkNode *)malloc(sizeof(LinkNode));s->data=x;s->next=NULL;Q.rear->next=s; //rear始终指向尾部Q.rear=s;
}
//出队    头部删除法
bool DeQueue(LinkQueue &Q,ElemType &x)
{if(Q.front==Q.rear)return false;   //队列为空LinkNode *q=Q.front->next;  //头结点什么都没存,所以头结点的下一个结点才有数据if(Q.rear==q){x=q->data;Q.rear=Q.front; //如果只有一个结点}else{x=q->data;Q.front->next=q->next;  //断链}free(q);return true;
}
//通过链表来实现队列
int main()
{LinkQueue Q;//入队InitQueue(Q);   //初始化队列EnQueue(Q,3);EnQueue(Q,4);EnQueue(Q,5);EnQueue(Q,6);EnQueue(Q,7);//出队ElemType element;       //存储出队元素bool ret;ret= DeQueue(Q,element);if(ret)printf("DeQueue success,element=%d\n",element);elseprintf("Dequeue fail\n");return 0;
}

运行:

DeQueue success,element=3

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

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

相关文章

动态规划(算法竞赛、蓝桥杯)--树形DP没有上司的舞会

1、B站视频链接&#xff1a;E17 树形DP Luogu P1352 没有上司的舞会_哔哩哔哩_bilibili 题目链接&#xff1a;没有上司的舞会 - 洛谷 #include <bits/stdc.h> using namespace std; const int N6010; int n; int w[N]; vector<int>a[N];//邻接表 bool fa[N]; int…

011 Linux_线程概念与创建

前言 本文将会向你介绍线程的概念&#xff0c;以及线程是怎么被创建的 线程概念 一、进程是承担系统资源的基本实体&#xff0c;线程是cpu调度的基本单位 首先&#xff0c;地址空间在逻辑上相当于进程的资源窗口&#xff0c; 每个进程都有这样一个资源窗口。通过地址空间页…

工控传感器选型原则及举例说明

工控传感器选型原则及举例说明 前言选型原则知识储备光电传感器接近开关和行程开关磁性开关模拟量传感器类型及使用范围数字量传感器类型及使用范围 选型举例食品包装箱运输过程中的检测有无仓库提升伺服的极限位检测产品高度检测 前言 这里仅以数字量和模拟量信号的传感器举例…

Vue源码系列讲解——实例方法篇【二】(事件相关方法)

目录 0.前言 1. vm.$on 1.1 用法回顾 1.2 内部原理 2. vm.$emit 2.1 用法回顾 2.2 内部原理 3. vm.$off 3.1 用法回顾 3.2 内部原理 4. vm.$once 4.1 用法回顾 4.2 内部原理 0.前言 与事件相关的实例方法有4个&#xff0c;分别是vm.$on、vm.$emit、vm.$off和vm.$o…

前端面试知识点合集

原型和原型链 任何函数都可以作为构造函数。当该函数通过 new 关键字调用的时候&#xff0c;就称之为构造函数。 var Parent function(){}//定义一个函数&#xff0c;那它只是一个普通的函数&#xff0c;不能称它为构造函数var instance new Parent(); //这时这个Parent就不…

C#理论 —— WPF 应用程序Console 控制台应用

文章目录 1. WPF 应用程序1.1 工程创建1.2 控件1.2.1 控件的公共属性1.2.1 TextBox 文本框1.2.1 Button 按钮 *. Console 控制台应用1.1 工程创建 1. WPF 应用程序 1.1 工程创建 Visual Studio 中新建项目 - 选择WPF 应用程序&#xff1b; 1.2 控件 1.2.1 控件的公共属性 …

如何备份和恢复MySQL数据库?有哪些常见的备份工具和策略?

如何备份和恢复MySQL数据库&#xff1f;有哪些常见的备份工具和策略&#xff1f; 在数据库管理中&#xff0c;备份和恢复是非常重要的环节&#xff0c;它们保障了数据的安全性和可恢复性。对于MySQL这样的关系型数据库管理系统&#xff0c;了解并实施有效的备份策略至关重要。…

Linux网络编程——网络基础

Linux网络编程——网络基础 1. 网络结构模式1.1 C/S 结构1.2 B/S 结构 2. MAC 地址3. IP地址3.1 简介3.2 IP 地址编址方式 4. 端口4.1 简介4.2 端口类型 5. 网络模型5.1 OSI 七层参考模型5.2 TCP/IP 四层模型 6. 协议6.1 简介6.2 常见协议6.3 UDP 协议6.4 TCP 协议6.5 IP 协议6…

【兔子机器人】根据自身机器人参数修改simulink模型

关节电机 机体初始高度 &#xff01;&#xff01;&#xff01;接下来尝试修改各腿的坐标朝向

LeetCode54题:螺旋矩阵(python3)

路径的长度即为矩阵中的元素数量&#xff0c;当路径的长度达到矩阵中的元素数量时即为完整路径&#xff0c;将该路径返回。 循环打印&#xff1a; “从左向右、从上向下、从右向左、从下向上” 四个方向循环打印。 class Solution:def spiralOrder(self, matrix: List[List[i…

怎么对App进行功能测试

测试人员常被看作是bug的寻找者&#xff0c;但你曾想过他们实际是如何开展测试的吗&#xff1f;你是否好奇他们究竟都做些什么&#xff0c;以及他们如何在一个典型的技术项目中体现价值&#xff1f;本文将带你经历测试人员的思维过程&#xff0c;探讨他们测试app时的各种考虑. …

Android和Linux的嵌入式开发差异

最近开始投入Android的怀抱。说来惭愧&#xff0c;08年就听说这东西&#xff0c;当时也有同事投入去看&#xff0c;因为恶心Java&#xff0c;始终对这玩意无感&#xff0c;没想到现在不会这个嵌入式都快要没法搞了。为了不中年失业&#xff0c;所以只能回过头又来学。 首先还是…

虚拟内存与mmap,brk

虚拟内存与mmap,brk 基本概念及相关术语 1.1 基本概念 虚拟内存使得应用程序认为它拥有连续的可用的内存&#xff08;一个连续完整的地址空间&#xff09;&#xff0c;而实际上&#xff0c;它通常是被分隔成多个物理内存碎片&#xff0c;还有部分暂时存储在外部磁盘存储器上&…

【C语言】linux内核generic_xdp_tx

一、中文注释 /* 在执行通用XDP时&#xff0c;我们必须绕过qdisc层和网络挖掘点&#xff0c;* 以匹配驱动内XDP的行为。*/ void generic_xdp_tx(struct sk_buff *skb, struct bpf_prog *xdp_prog) {struct net_device *dev skb->dev; // 获取skb对应的网络设备struct netd…

面试高频率问答题目

索引&#xff1a; 主键索引&#xff1a;表的id &#xff08;唯一 且 不能为空&#xff09; 唯一索引&#xff1a;表User 假设有account 字段 &#xff0c;用户名不重复 &#xff08;唯一 可以为空&#xff09; 复合索引&#xff1a;where() 的条件 用户名&#xff0c;密码 …

MySQL:函数

提醒&#xff1a; 设定下面的语句是在数据库名为 db_book里执行的。 创建user_info表 注意&#xff1a;pwd为密码字段&#xff0c;这里使用了VARCHAR(128)类型&#xff0c;为了后面方便对比&#xff0c;开发项目里一般使用char(32)&#xff0c;SQL语句里使用MD5加密函数 USE db…

【博图TIA-Api】通过Excel自动新建文件夹和导入FB块

【博图TIA-Api】通过Excel自动新建文件夹和导入FB块 说明思路准备获取Excel表格内文件名和FB块名等信息新建文件夹部分筛分获取的文件夹数据&#xff0c;去掉重复内容创建文件夹 导入FB块导出FB块的xml文件查找需要放置的文件夹导入块 说明 续上一篇文章&#xff0c;这次是根据…

多线程 --- [ 线程池、线程安全、其他常见的锁 ]

目录 1. 线程池 模块一&#xff1a;线程的封装 模块二&#xff1a;线程池的封装 模块三&#xff1a;互斥量的封装 (RAII风格) 模块四&#xff1a;任务的封装 模块五&#xff1a;日志的封装 模块六&#xff1a;时间的封装 模块六&#xff1a;主函数 模块七&#xff1a…

备战蓝桥杯---状态压缩DP进阶题1

我们来看一看一道比较难的问题&#xff08;十分十分的巧妙&#xff09;&#xff1a; 显然我们应该一行一行放&#xff0c;又竖的会对下一行产生影响&#xff0c;我们令横着放为0&#xff0c;竖着放的上方为1. 对于下一行&#xff0c;前一行放1的下面为0&#xff0c;但是会出现…

【Redis | 第九篇】一篇文章看懂Redis持久化机制

文章目录 9.一篇文章看懂Redis持久化机制9.1Redis的两种持久化机制9.1.1为什么有持久化&#xff1f; 9.2RDB机制9.2.1介绍9.2.2触发机制&#xff08;1&#xff09;save命令触发&#xff08;2&#xff09;bgsave命令触发&#xff08;3&#xff09;自动触发 9.2.3执行流程9.2.4优…