当前位置:   article > 正文

数据结构——“队列 & 队列的应用“ 详细图解和代码示例 (没更新完)_数据结构队列实例有哪些

数据结构队列实例有哪些

队列的概念

队列是限制在两端进行插入操作和删除操作的线性表,允许进行存入操作的一端称为“队尾”允许进行删除操作的一端称为“队头”。当线性表中没有元素时,称为“空队”。

特点 ;先进先出(FIFO)

什么是队列

在这里插入图片描述
我们先举一个售票处的例子:有两个栏杆挡着进入窗口进行买票,一个接一个的从栏杆后进去,在栏杆内等待,这起到公平工公正的作用,防止了插队。但是有一个坏处是,如果你尿急但还在栏杆中, 你是不能出去的,只能忍着等到你买完后从护栏前面出去
在这里插入图片描述
银行一进来很豪华是吧,没有像这样的弄两个栏杆子,它门口会有一个叫号器,那么这个东西干什么呢?这个东西啊它非常关键也非常重要,对我们来说呢,比售票处要先进一点,或者说对我们每个人来说呢,能够节约我的时间。
你原来你进来是不是要排队啊?你排队这里你在这个在那里面想出去,前面有人想想想从后面出去不行,是不是挡着。现在就不同了,你一进来啊要办理业务,一进来的话,先不管三七二十一,先取个号,取个号的话呢,这个时候你就爱干嘛干嘛了,我们等着。然后呢这边这个工作人员他如果说前面的办理完,办理完业务了没人了,他就会按一下那个有个按钮按一下某某某号,那这时候呢你就可以进去办理业务,那么你在这个时间的话呢,你就不用说是在这儿排队等了,你上厕所不影响
那么注意这个起取号器谁做的里面要不要程序呢?需要的是不是里面的程序是怎么做的?什么样的一个思路呢?那这其实就是什么利用了我们这个数据结构的队列的这个思想,

其实上面的两种案例都体现了一个队列这么一个概念。

队列的特征

特殊的线性表,先进先出(FIFO)

  1. 数据:
    对于非空的队列,表头没有直接前驱,表尾没有直接后继,其它有且仅有一个直接前驱和一个直接后继。
  2. 操作:
    只允许在表尾插入数据,在表头删除数据。

队列——顺序存储

顺序存储怎么存,它的特点是什么呢?逻辑上的先后次序把他们依次的存储在一块连续的空间里面。这是我们说的顺序的这个特点啊,那么我们如何去存呢?

首先得有这样一个结构的数据,那么我们要将这组数据存在连续存的空间里面,显然我们先要申请一块连续空间,进而才能存储,所以对列的顺序里面要有一块连续的空间
在这里插入图片描述

然后呢,我们要有front,rear两个数据的空间,我们就可以通过这两个数据来确定我这个队列中有多少个元素,那么要出队的话,通过的front来进行出队,那么入队的话,我们通过rear入队

front 和rear 其实起到一个非常重要的数据管理作用,所以我们通常把他们两个数据和我们这个存储数据的空间,给它封装在一起。

在c语言中,封装数据用结构体,封装代码用函数。

定义队列结构体

#define MAXSIZE 64      //定义队列的容量
typedef int datatype;   //定义队列中数据元素的数据类型
typedef struct
{
    
     datatype data[MAXSIZE];   //用数组作为队列的存储空间
     int front,rear;     //指示队头前一个位置和队尾位置的指针
}sequeue;    //顺序队列类型定义
sequeue 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/空白诗007/article/detail/915533
推荐阅读
相关标签
  

闽ICP备14008679号