当前位置: 首页 > news >正文

队列queue

队列是一种特殊的线性表  

队列仅在线性表的两端进行操作

队头(Front):取出数据元素的一端

队尾(Rear):插入数据元素的一端

队列不允许在中间部位进行操作!

queue常用操作

销毁队列

清空队列

进队列

出队列

获取队头元素

获取队列的长度

C语言描述=====》队列的设计与实现  人生财富库积累

#ifndef _MY_QUEUE_H_

#define _MY_QUEUE_H_

typedef void Queue;

Queue* Queue_Create();

void Queue_Destroy(Queue* queue);

void Queue_Clear(Queue* queue);

int Queue_Append(Queue* queue, void* item);

void* Queue_Retrieve(Queue* queue);

void* Queue_Header(Queue* queue);

int Queue_Length(Queue* queue);

#endif //_MY_QUEUE_H_

 

3.2.3队列模型和链表模型关系分析

 

队列的顺序存储设计与实现

1基本概念

队列也是一种特殊的线性表;可以用线性表顺序存储来模拟队列。

2设计与实现

#ifndef _MY_SEQQUEUE_H_

#define _MY_SEQQUEUE_H_

 

typedef void SeqQueue;

 

SeqQueue* SeqQueue_Create(int capacity);

 

void SeqQueue_Destroy(SeqQueue* queue);

 

void SeqQueue_Clear(SeqQueue* queue);

 

int SeqQueue_Append(SeqQueue* queue, void* item);

 

void* SeqQueue_Retrieve(SeqQueue* queue);

 

void* SeqQueue_Header(SeqQueue* queue);

 

int SeqQueue_Length(SeqQueue* queue);

 

int SeqQueue_Capacity(SeqQueue* queue);

 

#endif //_MY_SEQQUEUE_H_

 

 

3.2.5队列的链式存储设计与实现

1基本概念

队列也是一种特殊的线性表;可以用线性表链式存储来模拟队列的链式存储。

2设计与实现

#ifndef _MY_LINKQUEUE_H_

#define _MY_LINKQUEUE_H_

 

typedef void LinkQueue;

 

LinkQueue* LinkQueue_Create();

 

void LinkQueue_Destroy(LinkQueue* queue);

 

void LinkQueue_Clear(LinkQueue* queue);

 

int LinkQueue_Append(LinkQueue* queue, void* item);

 

void* LinkQueue_Retrieve(LinkQueue* queue);

 

void* LinkQueue_Header(LinkQueue* queue);

 

int LinkQueue_Length(LinkQueue* queue);

 

#endif //_MY_LINKQUEUE_H_

相关文章:

  • SEO优化:为什么要关注“网站抓取频率”?
  • Nginx配置error_page 404错误页面
  • pycharm安装以及简单使用教程
  • Android 多渠道打包
  • shell计算工具源码
  • JavaScript之闭包
  • 秒懂sql intersect
  • VUE多项目间跳转保存用户解决方法
  • [Nuget]使用Nuget管理工具包
  • 一名QA的碎碎念
  • [Python] 输入与输出
  • Android Activity生命周期详解
  • Python+Appium自动化环境搭建
  • Unity3D之Legacy动画系统学习笔记
  • 联想关键业务服务器 sysytem X3850 X6 4U机架式服务器
  • [译] 怎样写一个基础的编译器
  • 【mysql】环境安装、服务启动、密码设置
  • CAP理论的例子讲解
  • CSS中外联样式表代表的含义
  • express.js的介绍及使用
  • Fabric架构演变之路
  • github指令
  • JS 面试题总结
  • Linux下的乱码问题
  • Mysql优化
  • Rancher-k8s加速安装文档
  • Unix命令
  • 阿里云ubuntu14.04 Nginx反向代理Nodejs
  • 经典排序算法及其 Java 实现
  • 少走弯路,给Java 1~5 年程序员的建议
  • 手写双向链表LinkedList的几个常用功能
  • 写代码的正确姿势
  • 一些关于Rust在2019年的思考
  • ​​​​​​​​​​​​​​Γ函数
  • ​LeetCode解法汇总2182. 构造限制重复的字符串
  • ​一文看懂数据清洗:缺失值、异常值和重复值的处理
  • (4)logging(日志模块)
  • (Redis使用系列) SpringBoot中Redis的RedisConfig 二
  • (附源码)springboot 基于HTML5的个人网页的网站设计与实现 毕业设计 031623
  • (附源码)ssm捐赠救助系统 毕业设计 060945
  • (附源码)ssm旅游企业财务管理系统 毕业设计 102100
  • (数位dp) 算法竞赛入门到进阶 书本题集
  • (学习日记)2024.04.04:UCOSIII第三十二节:计数信号量实验
  • .NET CORE Aws S3 使用
  • .NET Entity FrameWork 总结 ,在项目中用处个人感觉不大。适合初级用用,不涉及到与数据库通信。
  • .Net IE10 _doPostBack 未定义
  • .Net 高效开发之不可错过的实用工具
  • .net6Api后台+uniapp导出Excel
  • .NET平台开源项目速览(15)文档数据库RavenDB-介绍与初体验
  • .xml 下拉列表_RecyclerView嵌套recyclerview实现二级下拉列表,包含自定义IOS对话框...
  • ?php echo $logosrc[0];?,如何在一行中显示logo和标题?
  • [AIGC] MySQL存储引擎详解
  • [ASP.NET MVC]如何定制Numeric属性/字段验证消息
  • [BUUCTF]-Reverse:reverse3解析
  • [BZOJ2281][SDOI2011]黑白棋(K-Nim博弈)