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

队列之循环队列详解(C语言版) 本篇文章详细的介绍了数据结构队列中的循环队列,并用C语言对其常用操作进行了实现。 阅读详情
#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 p)
{
p = (pqueue)malloc(sizeof(struct queue));
p->front = p->rear = NULL;
printf("初始化队列已经成功!\n");
return p;
}

//判断队列是否为空
void empty(pqueue p)
{
if (p->rear==NULL)
printf("队列为空!\n");
else
printf("队列不为空!\n");
}

//入队操作
int enqueue(pqueue p)
{
pnode q;
q = (pnode)malloc(sizeof(struct node));
printf("请输入你想入队的数据:\n");
scanf("%d",&q->data);
if (p->front == p->rear&&p->rear==NULL)
p->front = p->rear = q;
else
{
p->rear->next=q;
p->rear = p->rear->next;
p->rear->next = NULL;
}
return 0;
}

//出队操作
int delqueue(pqueue p)
{
if (p->rear==NULL)
printf("队列为空!\n");
else if ( p->front==p->rear&&p->rear != NULL)
{
printf("出队的数据是%d\n", p->front->data);
p->front = p->rear = NULL;
}
else
{
printf("你要出队的数据是:");
printf("%d\n",p->front->data);
p->front = p->front->next;
}
return 0;
}

//遍历链队
void show(pqueue p)
{
pnode f,r;
f = r = (pnode)malloc(sizeof(struct node));
f= p->front;
r = p->rear;
if (r == NULL)
printf("队列为空!\n");
else
while (f != NULL)
{
printf("%d ",f->data);
f = f->next;
}
printf("\n");
}

//计算链队的长度
void sumqueue(pqueue p)
{
int k = 0;
pnode f, r;
f = r = (pnode)malloc(sizeof(struct node));
f = p->front;
r = p->rear;
if (r == NULL)
printf("队列的长度是:0\n");
else
while(f!= NULL){
k++;
f = f->next;
}
printf("队列的长度是:%d\n",k);
}

//销毁队列
void desqueue(pqueue p)
{
if (p->front == p->rear == NULL)
printf("队列为空");
else if (p->rear == p->front != NULL)
free(p);
else
while (p->front != NULL)
{
free(p->front);
p->front = p->front->next;
}
printf("队列已经销毁!\n");
}
//主函数
int main()
{
pqueue p;
p = NULL;
int n;
do{
printf("***************************\n");
printf("1.初始化队列\n2.判断队列是否为空\n3.入队操作\n4.出队操作\n5.遍历队列中的元素\n6.输出队列的长度\n7.销毁队列\n8.退出程序\n");
printf("***************************\n");
printf("请输入你的选择!\n");
scanf("%d", &n);
switch (n){
case 1:
p=init(p);
break;
case 2:
empty(p);
break;
case 3:
enqueue(p);
break;
case 4:
delqueue(p);
break;
case 5:
show(p);
break;
case 6:
sumqueue(p);
break;
case 7:
desqueue(p);
break;
case 8:
break;
default :
printf("请输入正确的选择!\n");
}
} while (n != 8);
printf("程序已结束拜拜!\n");
return 0;
}

大模型时代必备技能:3种向量量化技术对比(PQ/AQ/RVQ)与选型指南 本文深入解析了大模型时代处理海量向量数据的关键技术——向量量化。通过对比Product Quantization (PQ)、Additive Quantization (AQ)和Residual Vector Quantization (RVQ)三种主流技术的核心原理、性能表现与适用场景,为工程师提供了从理论到实践的选型指南,旨在解决向量存储与检索的效率瓶颈,助力RAG等大模型应用高效落地。 阅读详情

相关推荐

研一脑电小白日记 之 EEGLAB预处理实战指南

本文为脑电研究新手提供了一份详尽的EEGLAB预处理实战指南。从MATLAB与EEGLAB环境搭建、使用NeuracleEEGFileReader插件导入BDF格式数据开始,逐步讲解了电极定位、滤波、降采样、ICA去伪迹等核心步骤,旨在帮助初学者高效完成脑电数据预处理,为后续分析奠定坚实基础。

weixin_29230649的博客 557

链式队列的基本操作

操作介绍: 1、创建一个链式队列 2、入队一个元素 3、出队一个元素 4、输出当前的队列 5、退出操作系统 #include<windows.h> #include<iostream> using namespace std; typedef struct QNode //结点结构 { int data; struct QNode *next; }QNode, ...

gets_s的博客 1640

昆仑通态,自由串口通讯

软件默认无该功能,需要问客服索要扩展包。

cfqq1989的博客 1538

链队列的各种基本运算

链队列的各种基本运算 码文不易,如果帮助到您,希望您可以帮我刷一下点击量,与您无害,与我有益谢谢 支持原创 。   欢迎大家阅读我的博客,如果有错误请指正,有问题请提问,我会尽我全力改正错误回答问题。在次谢谢大家。下面开始正式内容      队列,又称为伫列(queue),是先进先出(FIFO, First-In-First-Out)的线性表。在具体应用中通常用链表或者...

Paradox 6459

QT与Coin3D实现机器人的仿真

前言 Coin3D编程环境配置好后,开始下一步的机器人仿真任务。本文根据在研5轴机器人,完成三维模型生成与机器人的仿真。主要参考博主冯Jungle的博客,在此表示感谢。 ——2021.05.23 环境 Win10:VS2019、QT5.15.2、Coin3D、SolidWorks2016 机器人三维模型生成 目前广泛应用于因特网的VRML ( Virtual Reality Modeling Language,虚拟现实建模语言)为用户提供一种可参与的、并能对场景中对象主动做出反应的虚拟现实环境,现已成

焦露的博客 6907

从深算一号到三号:海光DCU的技术演进与国产超算突围之路

本文梳理了海光DCU从深算一号到三号的技术演进历程,展现了国产高性能计算芯片从填补空白到追赶并行的突围之路。文章重点分析了深算系列在性能提升、软件生态(DTK)建设及超算平台构建方面的关键进展,并探讨了其在AI大模型训练、科学计算等领域的应用实践与未来挑战。

ipfs8storage的博客 1062

数据结构——链队列

数据结构——链队列 文章目录数据结构——链队列一、队列的基本概念?二、使用步骤1.队列的接口定义2.创建节点类3.创建LinkedQueue类实现接口小结 一、队列的基本概念? 队列是一种限定存取位置的线性表。它只允许在表的一端插入,在另一端删除。因此,从数据类型的角度来看,队列是一种独立的抽象数据类型。允许插入的一端叫做队尾,允许删除的一端叫做队头。 每次在队尾加入元素,因此入队的顺序为a1,a2,a3,…,an,最先入队的元素最先出队,所以队列具有的这种特性成为先进先出FIFO(First In Fir

Better_C的博客 1170

[Python从零到壹] 十四.机器学习之分类算法五万字总结全网首发(决策树、KNN、SVM、分类对比实验)

分类(Classification)属于有监督学习(Supervised Learning)中的一类,它是数据挖掘、机器学习和数据科学中一个重要的研究领域。分类模型类似于人类学习的方式,通过对历史数据或训练集的学习得到一个目标函数,再用该目标函数预测新数据集的未知属性。本章主要讲述分类算法基础概念,并结合决策树、KNN、SVM分类算法案例分析各类数据集,从而让读者学会使用Python分类算法分析自己的数据集,研究自己领域的知识,从而创造价值。 19.1 分类 19.1.1 分类模型 与前面讲述的聚类模型类似

杨秀璋的专栏 2万+

顺序循环队列&链队列

队列与栈同样是一种操作受限制的线性表,队列的特点是先进先出即 FIFO,一般在尾部插入头部删除,在通常使用过程中,顺序队列经常产生假溢出等情况,因此时常采用顺序循环队列。 除顺序队列外还有链队,双端队列等。接下来先从顺序循环队列开始…… 顺序队列 头尾指针与顺序栈是一个思路,本质其实是数组的下标,按照图2方式再进行入队时rear已到达最大数值,但数组0,1位还有空缺,因此产生了假溢出的情况。 因此为了在考虑过时间与空间的情况下,修改成循环队列并增加两个“指针”,即可方便操作。 ...

chengxuyuanlee的博客 1717

第4章--CANoe library开发 - 诊断功能

因为专栏要做的是汽车ECU自动化测试程序,测试的是ECU的诊断和刷新,因此就需要利用CANoe的接口,开发一些方便使用的诊断报文收发函数。

j187067046的博客 1398

SOEM主站开发篇(1):移植SOEM主站到Linux开发板

详细介绍了SOEM主站源码移植到Linux开发板上的步骤,同时演示了如何使用Linux开发板获取EtherCAT从站的PDO映射信息。

kevin1499的博客 2398

数据结构之队列(链式队列)的基本操作与实现

这篇文章的末尾有完整的实现代码,书写不易,转载请附上本文章链接。 一、链式队列的概念 何为链式队列,想到链式队列大家应该都会想到顺序表的单链表的基本操作,我们来对比一下:单链表是用一个头指针或者是尾指针来实现元素的插入和删除等,即头插法和尾插法。而链式队列呢,我们都知道队列是一个在队首进行出队再队尾进行入队,而不是在一段完成任务,所以我们这里就需要两个指针分别指向队列的头front和尾rear,他们两个各司其职,当要进行出队操作时,头指针front说了算,当要进行入队操作时,尾指针re...

BaoITcore的博客 2万+

基于深度学习的垃圾邮件识别

垃圾邮件的大量存在严重威胁着电子邮件系统的安全和效率。基于深度学习的垃圾邮件识别技术已经成为目前最有效的解决方案之一。本文将详细介绍使用深度学习技术进行垃圾邮件识别的方法,并提供相应的代码实现。 随着电子邮件的广泛应用,垃圾邮件的数量不断增加,传统的规则和统计方法已经无法满足对垃圾邮件进行准确识别的需求。深度学习技术以其强大的模式识别能力和自动特征提取能力成为解决垃圾邮件识别难题的有效工具。

一键难忘的博客 1094

数据结构与算法学习笔记十---链队列的表示和实现(C语言)

链队列的表示和实现。

我叫柱子哥 707

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

类C语言--链队列的基本操作:初始化,销毁,判空,入队,出队,取队列头,求结点个数,遍历链队列输出

此代码可以正常运行,下有运行区,是实实在在的类C语言 #include<stdio.h> #include<stdlib.h> typedef char QElemType; typedef struct QNode { QElemType data; struct QNode *next; }QNode,*QueuePtr; typedef struct { ...

September_C的博客 1405

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

数据结构-队列(链队列与循环队列)

队列也是一种特殊的线性表,其操作受到限制。只允许在队列的一端进行插入数据操作,而在队列的另一端进行删除数据操作。在队列中,进行插入数据操作的一端叫做队尾,其操作叫做入队列或者进队列;而进行删除数据操作的一端叫做队头或者队首,其操作叫做出队列或者离队列。如上图所示,n1,n2,n3,n4,n5依次从队尾入队,队头元素是n1,队尾元素是n5;而出队只能从另一端队头出,次序依次为n1,n2,n3,n4,n5。......

m0_61433144的博客 2211

数据结构(六)——顺序队列、链队列

队列——顺序队列、链队列 队列概念 ​ 队列是一种特殊的、只允许在一端进行数据的输入,在另一端进行数据的删除、具有先进先出(FIFO)特性的线性表,进行插入操作的一端称为队尾,进行删除操作的一端称为队头 顺序队列 ​ 顺序队列就是限制只能在队列两端分别进行插入和删除操作的线性表 顺序队列定义 ​ 顺序队列的定义就是在顺序表的基础上加上代表队头 front 和队尾 rear 的头尾”指针“,...

scfor333的博客 3746

数据结构——链队的基本操作(包含入队、出队、求长度、取队头、清除等)

数据结构(C语言第二版严蔚敏版)——链队的基本操作(包含入队、出队、求长度、取队头、清除等)

qq_62692207的博客 6602

【初阶数据结构与算法】线性表之队列的定义与实现

队列和栈一样既可以选择数组做底层,也可以选择链表作为它的底层,那么哪一个更好呢?这个就需要我们去分析一下了如果采用数组,那么我们入队列就可以直接在数组最后添加数据,时间复杂度为O(1),比较方便,但是当我们要从数组头删数据就比较麻烦了,因为数组头删的时间复杂度为O(N),效率并不是很高我们再来分析一下使用链表怎么样,如果我们使用链表实现队列,那么在头部删除没有问题了,时间复杂度为O(1),但是我们要在最后插入数据,对于链表来说,尾插的时间复杂度是O(N),那么到底选哪一个才好?

hdxbufcbjuhg的博客 2362

数据结构与算法学习笔记十---链队列的表示和实现(C++)

这篇博客主要讲的是对队列的链式存储。

我叫柱子哥 1027

链式队列算法库构建

学习贺利坚老师课程,构建链式队列算法库数据结构之自建算法库——链队(链式队列)_数据结构函数链队列的算法框架有哪些-优快云博客本文针对数据结构基础系列网络课程(3):栈和队列中第10课时队列的链式存储结构及其基本运算的实现。按照“0207将算法变程序”[视频]部分建议的方法,建设自己的专业基础设施算法库。链队算法库采用程序的多文件组织形式,包括两个文件:      1.头文件:liqueue.h,包含定义链队数据结构的代码、宏定义、要实现算法的函数的声明;

qq_57484399的博客 918

【数据结构】队列的顺序表示

参考资料:《数据结构(C语言版)严蔚敏著》 版权说明:未经作者允许,禁止转载。如引用本文内容,需标明作者及出处。如本文侵犯了您的权益,请联系我删除并致歉。 文章说明:如文章中出现错误,请联系我更改。如您对文章的内容有任何疑问,也欢迎来与我讨论。 本文正在施工中...请稍等... 队列的顺序表示 顺序队列 用一块连续的存储单元存放队列中的元素,并附加两个指针front和rear分别指示队头元素...

WINGREZ‘S BLOG 2325

数据结构-队列详解(类C语言版)

目录 队列的相关概念 定义 逻辑结构 存储结构 运算规则 实现方式 队列的基本操作 循环队列——队列的顺序表示和实现 队列的顺序存储结构 假溢出-引出循环队列 判断循环队列队空队满 循环队列的操作 队列的初始化 求循环队列长度 循环队列入队 循环队列出队 取循环队列队头元素 队列-链式队列 队列的链式存储结构 链队列的类型定义 链式队列的操作 链队的初始化 链队的入队 链队的出队 取链队的队头元素 销毁链队列 队列的相关概念 定义 只能在表...

秃了也弱了 2764

【C语言】链式队列的实现

队列是线性表的一种是一种先进先出(First In Fi Out)的数据结构

池央的博客 1147

链队列的基本操作

队列的链接存储结构称为链队列(linked queue),通常用单链表表示,其节点结构与单链表的节点结构相同,为了使空队列和非空队列的操作一致,链队列也加上头节点,根据队列的先进先出特性,为了操作上的方便,设置对头指针,指向链队列的头节点,对尾指针指向终点节点

机会是给有准备的人 1981

//2、封装一个循环顺序队列,并封装其相应的操作:判空、入队列、出队、遍历队、求队列长度、销毁

//2、封装一个循环顺序队列,并封装其相应的操作:判空、入队列、出队、遍历队、求队列长度、销毁

qq_53140444的博客 138

队列的链式表示和实现

用链表表示的队列简称为链队列。一个链队列显然需要两个分别指示队头和队尾的指针(分别称为头指针和尾指针)才能唯一确定。 和线性表的单链表一样,为了操作方便起见,我们也给链队列添加一个头结点,并令头指针指向头结点。由此,空的链队列的判断条件为头指针和尾指针均指向头结点,如图所示 //- - - - - - - - - -单链队列——队列的链式存储结构- - - - - - - - - t

sumi_的博客 4301
上一篇: 顺序队列的入队,出队,遍历队列计算队列的长度
下一篇: 二叉树的创建和递归遍历和非递归遍历
一代掌门
博客等级 码龄12年 9粉丝 12原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值