链队C语言的使用

简介: 链队C语言的使用

链队:采用链表来存储队列

链队类型的使用

#include<stdio.h>
#include<stdlib.h>
#define maxsize 100
typedef struct QNode
{
  int data;
  struct QNode *next;
}QNode;
typedef struct
{
  QNode *front;
  QNode *rear;
}Liqueue;

初始化链队

void initQueue(Liqueue *&lqu)
{
  lqu=(Liqueue*)malloc(sizeof(Liqueue));
  lqu->front=lqu->rear=NULL;
}

判断队空

int isQueueEmpty(Liqueue *lqu)
{
  if(lqu->rear==NULL||lqu->front==NULL)
    return 1;
  else
    return 0;
}

入队算法

void enQueue(Liqueue *lqu,int x)
{
  QNode *p;
  p=(QNode*)malloc(sizeof(QNode));
  p->data=x;
  p->next=NULL;
  if(lqu->rear==NULL)//若队列空,新结点是队首结点,也是队尾结点
    lqu->front=lqu->rear=p;
  else
  {
    lqu->rear->next=p;
    lqu->rear=p;//新结点链接到队尾,p指向它
  }
}

出队算法

int deQueue(Liqueue *lqu,int &x)
{
  QNode *p;
  if(lqu->rear==NULL)//队空不能出队
    return 0;
  else
    p=lqu->front;
  if(lqu->front==lqu->rear)//队列只有一个结点的处理
    lqu->front=lqu->rear=NULL;
  else
    lqu->front=lqu->front->next;
  x=p->data;
  free(p);
  return 1;
}

虽然链队特点不存在队列满上溢

这里有个bug就是队列满的时候还继续入队,内存满

今天的链队复习就到这里

目录
相关文章
|
10月前
|
机器学习/深度学习 人工智能 自然语言处理
【EMNLP2024】阿里云人工智能平台 PAI 多篇论文入选 EMNLP2024
阿里云人工智能平台 PAI 的多篇论文在 EMNLP2024 上入选。论文成果是阿里云与华南理工大学金连文教授团队、复旦大学王鹏教授团队共同研发。EMNLP 是人工智能自然语言处理领域的顶级国际会议,聚焦于自然语言处理技术在各个应用场景的学术研究,尤其重视自然语言处理的实证研究。该会议曾推动了预训练语言模型、文本挖掘、对话系统、机器翻译等自然语言处理领域的核心创新,在学术和工业界都有巨大的影响力。此次入选标志着阿里云人工智能平台 PAI 在自然语言处理和多模态算法能力方面研究获得了学术界认可。
|
12月前
|
Python
Matplotlib 教程 之 Matplotlib 绘图标记 5
使用 Matplotlib 的 `plot()` 方法通过 `marker` 参数来自定义图表标记,同时解释了如何利用 `fmt` 参数定义标记、线条样式及颜色,例如 &#39;o:r&#39; 分别表示实心圆标记、虚线及红色。并通过一个实例演示了其使用方法。
76 0
|
API 图形学 Swift
【Swift开发专栏】Swift与Core Graphics框架
【4月更文挑战第30天】本文介绍了Swift如何与Apple的Core Graphics框架结合,用于高性能的图形渲染和用户界面设计。Core Graphics提供底层绘图接口,包括图形上下文、路径、颜色空间、渐变和阴影等概念。在Swift中,开发者可直接调用Core Graphics函数,创建图形上下文、设置绘图属性、绘制图形和处理图像。文章还展示了如何实现渐变填充、阴影效果及自定义绘图代码,帮助开发者利用Swift创造复杂的图形和动画。通过掌握这些技能,开发者能为移动应用打造更具吸引力的视觉体验。
280 1
|
Java Linux
java实现两台linux服务器间下载上传传输文件
java实现两台linux服务器间下载上传传输文件
320 0
|
分布式计算 资源调度 DataWorks
dataworks常见问题之数据服务api返回超时如何解决
DataWorks是阿里云提供的一站式大数据开发与管理平台,支持数据集成、数据开发、数据治理等功能;在本汇总中,我们梳理了DataWorks产品在使用过程中经常遇到的问题及解答,以助用户在数据处理和分析工作中提高效率,降低难度。
208 2
|
PyTorch Serverless 算法框架/工具
YOLOv5源码逐行超详细注释与解读(6)——网络结构(1)yolo.py
YOLOv5源码逐行超详细注释与解读(6)——网络结构(1)yolo.py
3974 0
YOLOv5源码逐行超详细注释与解读(6)——网络结构(1)yolo.py
|
数据安全/隐私保护
【鸿蒙4.0】harmonyos Day 03
ArkUI组件-Text、ArkUI组件-TextInput:文本输入框简介及用法
231 1
|
Ubuntu Linux 数据库
嵌入式linux/鸿蒙开发板(IMX6ULL)开发(五)使用Source insight处理代码
嵌入式linux/鸿蒙开发板(IMX6ULL)开发(五)使用Source insight处理代码
333 1
嵌入式linux/鸿蒙开发板(IMX6ULL)开发(五)使用Source insight处理代码
|
机器学习/深度学习 编解码 文字识别
深度学习系列资料总结(二)
深度学习定义:一般是指通过训练多层网络结构对未知数据进行分类或回归 深度学习分类: 有监督学习方法——深度前馈网络、卷积神经网络、循环神经网络等; 无监督学习方法——深度信念网、深度玻尔兹曼机,深度自编码器等。
951 0
|
网络协议 SDN 开发工具
实现虚拟机实例与外部网络通信
实现虚拟机实例与外部网络通信
591 0
实现虚拟机实例与外部网络通信