热门标签 | 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存在

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



推荐阅读
  • 本文深入探讨了UNIX/Linux系统中的进程间通信(IPC)机制,包括消息传递、同步和共享内存等。详细介绍了管道(Pipe)、有名管道(FIFO)、Posix和System V消息队列、互斥锁与条件变量、读写锁、信号量以及共享内存的使用方法和应用场景。 ... [详细]
  • 深入剖析JVM垃圾回收机制
    本文详细探讨了Java虚拟机(JVM)中的垃圾回收机制,包括其意义、对象判定方法、引用类型、常见垃圾收集算法以及各种垃圾收集器的特点和工作原理。通过理解这些内容,开发人员可以更好地优化内存管理和程序性能。 ... [详细]
  • 深入解析Hadoop的核心组件与工作原理
    本文详细介绍了Hadoop的三大核心组件:分布式文件系统HDFS、资源管理器YARN和分布式计算框架MapReduce。通过分析这些组件的工作机制,帮助读者更好地理解Hadoop的架构及其在大数据处理中的应用。 ... [详细]
  • 本文探讨了大型服务端开发过程中常见的几个误区,包括异步任务处理不当、日志同步模式使用、网络操作未设置超时、缓存命中率及响应时间未统计、单一缓存模式、分布式缓存加锁不当以及团队管理上的误区,旨在帮助开发者避免这些常见错误。 ... [详细]
  • 优化Flask应用的并发处理:解决Mysql连接过多问题
    本文探讨了在Flask应用中通过优化后端架构来应对高并发请求,特别是针对Mysql 'too many connections' 错误的解决方案。我们将介绍如何利用Redis缓存、Gunicorn多进程和Celery异步任务队列来提升系统的性能和稳定性。 ... [详细]
  • LeetCode: 实现队列与栈的高级应用
    本文介绍如何使用队列和栈实现特定功能,包括动态维护队列元素并计算其平均值,以及栈操作中的优化技巧。 ... [详细]
  • 本题要求在一组数中反复取出两个数相加,并将结果放回数组中,最终求出最小的总加法代价。这是一个经典的哈夫曼编码问题,利用贪心算法可以有效地解决。 ... [详细]
  • 深入理解Java多线程并发处理:基础与实践
    本文探讨了Java中的多线程并发处理机制,从基本概念到实际应用,帮助读者全面理解并掌握多线程编程技巧。通过实例解析和理论阐述,确保初学者也能轻松入门。 ... [详细]
  • 本文详细介绍了Java中实现异步调用的多种方式,包括线程创建、Future接口、CompletableFuture类以及Spring框架的@Async注解。通过代码示例和深入解析,帮助读者理解并掌握这些技术。 ... [详细]
  • 本文探讨了如何通过一系列技术手段提升Spring Boot项目的并发处理能力,解决生产环境中因慢请求导致的系统性能下降问题。 ... [详细]
  • 本文档汇总了Python编程的基础与高级面试题目,涵盖语言特性、数据结构、算法以及Web开发等多个方面,旨在帮助开发者全面掌握Python核心知识。 ... [详细]
  • 使用WinForms 实现 RabbitMQ RPC 示例
    本文通过两个WinForms应用程序演示了如何使用RabbitMQ实现远程过程调用(RPC)。一个应用作为客户端发送请求,另一个应用作为服务端处理请求并返回响应。 ... [详细]
  • 深入解析BookKeeper的设计与应用场景
    本文介绍了由Yahoo在2009年开发并于2011年开源的BookKeeper技术。BookKeeper是一种高效且可靠的日志流存储解决方案,广泛应用于需要高性能和强数据持久性的场景。 ... [详细]
  • 本文详细探讨了Java中Volatile关键字的工作原理、优化技巧及其在实际开发中的应用场景,特别是在提高多线程环境下数据可见性和减少锁竞争方面的优势。 ... [详细]
  • 本文探讨了Web开发与游戏开发之间的主要区别,旨在帮助开发者更好地理解两种开发领域的特性和需求。文章基于作者的实际经验和网络资料整理而成。 ... [详细]
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社区 版权所有