首页 > 其他分享 >c语言创建队列的链式存储

c语言创建队列的链式存储

时间:2023-04-29 20:56:03浏览次数:39  
标签:存储 队列 LinkQueue next link 链式 front LinkNode rear

#include<stdio.h>
#include<stdlib.h>

typedef struct LinkNode
{
    int data;
    struct LinkNode *next;
    
} LinkNode;

typedef struct Link
{
    LinkNode *front,*rear;//front rear为链表的伴随指针 
    
} LinkQueue;
//初始化
 void InitQueue(LinkQueue* &Q)
{
    Q->front=Q->rear=(LinkNode*)malloc(sizeof(LinkNode));//存在头指针的链式队列 
    printf("%d\n",Q->front);    
    Q->front->next=NULL;
    
 }
 
 
 
 //判空
 bool IsEmpty(LinkQueue* &Q)
 {
     if(Q->front==Q->rear) return true;
     else return false;
     
 }
//入队 void EnQueue(LinkQueue* &Q,int x) { LinkNode* s=(LinkNode*)malloc(sizeof(LinkNode)); s->data=x; s->next=NULL; Q->rear->next=s;//将新的节点插入
Q->rear=s;//rear指针后移 } //出队 bool DeQueue (LinkQueue* &Q,int &x) { if(Q->front==Q->rear) return false; LinkNode* p=Q->front->next; if(p==Q->rear) return false; x=Q->front->next->data; Q->front->next=Q->front->next->next; free(p); return true;
} int main() { LinkQueue que; LinkQueue* link=&que; InitQueue(link); EnQueue(link,2); EnQueue(link,3); EnQueue(link,5); int n; DeQueue(link,n); // 输出为2 printf("n=%d\n",n); return 0; }

 

标签:存储,队列,LinkQueue,next,link,链式,front,LinkNode,rear
From: https://www.cnblogs.com/liuyanchao/p/17364470.html

相关文章

  • 4.存储过程
    1、创建一个存储过程,测试课程号为j005是否有成绩。CREATEPROCEDUREcheck_grade_for_j005_1ASBEGINDECLARE@OutputValueVARCHAR(100);IF(SELECT课程号FROM课程表WHERE课程号='j005')='j005'SET@OutputValue='Gradesforcoursej005exist.';ELSESET......
  • 第三章-栈 队列和数组
    栈stack数据接口三要素逻辑,运算,存储只允许在一端进行数据插入和删除操作.LIFO规则,lastinfirstout先进后出联想到烤串.doge卡特兰数(catalan),n个不同元素进栈,出栈元素不同排列的个数为顺序栈链栈只在头结点插入和删除就是链栈队列FIFOfirstinfirsto......
  • RabbitMQ 实现消息队列延迟
    1.概述要实现RabbitMQ的消息队列延迟功能,一般采用官方提供的rabbitmq_delayed_message_exchange插件。但RabbitMQ版本必须是3.5.8以上才支持该插件,否则得用其死信队列功能。2.安装RabbitMQ延迟插件检查插件使用rabbitmq-pluginslist命令用于查看RabbitMQ安装的插件。rabbitmq-pl......
  • SpringBoot RabbitMQ死信队列
    1.死信定义无法被消费的消息,称为死信。如果死信一直留在队列中,会导致一直被消费,却从不消费成功,专门有一个存放死信的队列,称为死信队列(DDX,dead-letter-exchange)。死信队列DLX,DeadLetterExchange的缩写,又死信邮箱、死信交换机。其实DLX就是一个普通的交换机,和一般的交换机没有......
  • RabbitMQ 实现消息队列延迟
    1.概述要实现RabbitMQ的消息队列延迟功能,一般采用官方提供的rabbitmq_delayed_message_exchange插件。但RabbitMQ版本必须是3.5.8以上才支持该插件,否则得用其死信队列功能。2.安装RabbitMQ延迟插件检查插件使用rabbitmq-pluginslist命令用于查看RabbitMQ安装的插件。rabb......
  • SpringBoot RabbitMQ死信队列
    1.死信定义无法被消费的消息,称为死信。如果死信一直留在队列中,会导致一直被消费,却从不消费成功,专门有一个存放死信的队列,称为死信队列(DDX,dead-letter-exchange)。死信队列DLX,DeadLetterExchange的缩写,又死信邮箱、死信交换机。其实DLX就是一个普通的交换机,和一般的交换......
  • EF Core 中原生SQL、存储过程、视图的使用
    包括EFCore中原型Sql的执行,包括存储过程和视图数据处理方法,同时包括参数化执行sql语句的注意事项。原生Sql查询原生sql查询使用如下两个方法进行,查询的结构只能映射到dbset关联的对象类型DBSet.FromSqlRaw()DBSet.FromSqlInterpolated()可以使用部分linq扩展方法.FromSqlR......
  • PostgreSQL技术大讲堂 - 第15讲:数据文件与块存储结构
     PostgreSQL从小白到专家,是从入门逐渐能力提升的一个系列教程,内容包括对PG基础的认知、包括安装使用、包括角色权限、包括维护管理、、等内容,希望对热爱PG、学习PG的同学们有帮助,欢迎持续关注CUUGPG技术大讲堂。Part15:数据文件与块存储结构内容1:表的OID与数据文件对应关系......
  • vue 使用腾讯云 cos存储 上传
    参考文档:https://blog.csdn.net/qq_34170840/article/details/1245203881、页面部分点击查看代码<inputref="fileRef"title=""type='file'name="file"multipleclass="file-input"@change="uploadStart......
  • 【图文详解】一文全面彻底搞懂HBase、LevelDB、RocksDB等NoSQL背后的存储原理:LSM-tree
    LSM树广泛用于数据存储,例如RocksDB、ApacheAsterixDB、Bigtable、HBase、LevelDB、ApacheAccumulo、SQLite4、Tarantool、WiredTiger、ApacheCassandra、InfluxDB和ScyllaDB等。在这篇文章中,我们将深入探讨LogStructuredMergeTree,又名LSM树:许多高度可扩展的NoSQL分......