热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

c++队列排队系统_数据结构队列

1)队列定义:一种先进先出的线性表(也可称为FIFO表-FirstInFirstOut)。队列是限制在两个端点进行插入和删除

1)队列定义:一种先进先出的线性表(也可称为FIFO表-First In First Out)。

队列是限制在两个端点进行插入和删除操作的线性表。

能够插入元素的一端成为队尾,能够删除元素的一端称为队首或队头。

2)应用实例

&1.车站排队买票。食堂排队买饭,

排在队头的人处理完之后从队头离开,而后来的人则必须排在队尾等待~

&2.计算机处理文件打印,

对于多个请求的打印文件,操作系统把它们当作可以被延迟的任务,按照应用程序提出打印任务的先后顺序作为实际打印的先后顺序,即“先进先出”原则

3)队列的存储结构。

&1.顺序存储,

又被称为顺序队列,它也是利用一组地址连续的存储单元存放队列中的元素。由于队列中元素的插入和删除限定在表的两端进行,因此设置队头指针队尾指针,分别指出当前的队头和队尾。

df8611225a37170fe388b2dfda4ea35e.png

&2.链式存储

又被称为链队列,为便于操作,给队列添加一个头结点,并令头指针指向头结点。

因此,队列为空的判定条件是头指针和尾指针的值相同,且均指向头结点。

ab145adc0aaa62518215ea782e6ce373.png

4)队列的基本运算

&1.入队操作InQueue(&q,x)

初始条件:队列q存在,且未满

操作结果:插入一个元素x到队尾,队列长度 +1;

&2.出队操作OutQueue(&q,&x)

初始条件:队列q存在,且非空

操作结果:将队首元素赋值给x带回主调函数,然后就爱那个队首元素从队列中删除,队列长度-1;

&3.读队头元素ReadFont(q,&x)

初始条件:队列q存在,且非空

操作结果:将队首元素赋值给x带回主调函数。队列不变

&4.显示队列元素ShowQueue(q)

初始条件:队列q存在,且非空

操作结果:显示队列中的所有元素。

&5.判队空操作QEmpty(q)

初始条件:队列q存在

操作结果:若队则返回1,否则返回0

&6.判队满操作QFull(q)

初始条件:队列q存在

操作结果:若队则返回1,否则返回0

&7.求队列列长度QLen(q)

初始条件:队列q存在

操作结果:返回队列中的当前元素个数



推荐阅读
  • 本文介绍了Java并发库中的阻塞队列(BlockingQueue)及其典型应用场景。通过具体实例,展示了如何利用LinkedBlockingQueue实现线程间高效、安全的数据传递,并结合线程池和原子类优化性能。 ... [详细]
  • 微软Exchange服务器遭遇2022年版“千年虫”漏洞
    微软Exchange服务器在新年伊始遭遇了一个类似于‘千年虫’的日期处理漏洞,导致邮件传输受阻。该问题主要影响配置了FIP-FS恶意软件引擎的Exchange 2016和2019版本。 ... [详细]
  • 根据最新发布的《互联网人才趋势报告》,尽管大量IT从业者已转向Python开发,但随着人工智能和大数据领域的迅猛发展,仍存在巨大的人才缺口。本文将详细介绍如何使用Python编写一个简单的爬虫程序,并提供完整的代码示例。 ... [详细]
  • 本题旨在通过给定的评级信息,利用拓扑排序和并查集算法来确定全球 Tetris 高手排行榜。题目要求判断是否可以根据提供的信息生成一个明确的排名表,或者是否存在冲突或信息不足的情况。 ... [详细]
  • 深入解析TCP/IP五层协议
    本文详细介绍了TCP/IP五层协议模型,包括物理层、数据链路层、网络层、传输层和应用层。每层的功能及其相互关系将被逐一解释,帮助读者理解互联网通信的原理。此外,还特别讨论了UDP和TCP协议的特点以及三次握手、四次挥手的过程。 ... [详细]
  • 全面解析运维监控:白盒与黑盒监控及四大黄金指标
    本文深入探讨了白盒和黑盒监控的概念,以及它们在系统监控中的应用。通过详细分析基础监控和业务监控的不同采集方法,结合四个黄金指标的解读,帮助读者更好地理解和实施有效的监控策略。 ... [详细]
  • 本文详细介绍了Grand Central Dispatch (GCD) 的核心概念和使用方法,探讨了任务队列、同步与异步执行以及常见的死锁问题。通过具体示例和代码片段,帮助开发者更好地理解和应用GCD进行多线程开发。 ... [详细]
  • 并发编程 12—— 任务取消与关闭 之 shutdownNow 的局限性
    Java并发编程实践目录并发编程01——ThreadLocal并发编程02——ConcurrentHashMap并发编程03——阻塞队列和生产者-消费者模式并发编程04——闭锁Co ... [详细]
  • 深入解析RDMA中的队列对(Queue Pair)
    本文将详细探讨RDMA架构中的关键组件——队列对(Queue Pair,简称QP),包括其基本概念、硬件与软件实现、QPC的作用、QPN的分配机制以及用户接口和状态机。通过这些内容,读者可以更全面地理解QP在RDMA通信中的重要性和工作原理。 ... [详细]
  • 深入解析 Android IPC 中的 Messenger 机制
    本文详细介绍了 Android 中基于消息传递的进程间通信(IPC)机制——Messenger。通过实例和源码分析,帮助开发者更好地理解和使用这一高效的通信工具。 ... [详细]
  • 优化Flask应用的并发处理:解决Mysql连接过多问题
    本文探讨了在Flask应用中通过优化后端架构来应对高并发请求,特别是针对Mysql 'too many connections' 错误的解决方案。我们将介绍如何利用Redis缓存、Gunicorn多进程和Celery异步任务队列来提升系统的性能和稳定性。 ... [详细]
  • LeetCode: 实现队列与栈的高级应用
    本文介绍如何使用队列和栈实现特定功能,包括动态维护队列元素并计算其平均值,以及栈操作中的优化技巧。 ... [详细]
  • 本题要求在一组数中反复取出两个数相加,并将结果放回数组中,最终求出最小的总加法代价。这是一个经典的哈夫曼编码问题,利用贪心算法可以有效地解决。 ... [详细]
  • 深入理解Java多线程并发处理:基础与实践
    本文探讨了Java中的多线程并发处理机制,从基本概念到实际应用,帮助读者全面理解并掌握多线程编程技巧。通过实例解析和理论阐述,确保初学者也能轻松入门。 ... [详细]
  • 本文详细介绍了Java中实现异步调用的多种方式,包括线程创建、Future接口、CompletableFuture类以及Spring框架的@Async注解。通过代码示例和深入解析,帮助读者理解并掌握这些技术。 ... [详细]
author-avatar
n张家珲
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有