队列的简单学习

本文介绍了队列这一数据结构的基本概念,它遵循先进先出(FIFO)原则,区别于栈的后进先出。通过数组和链表两种方式详细解释了队列的存储和操作,包括如何在队尾插入元素、队头移除元素,并讨论了环形队列提高空间利用率的机制。
摘要由CSDN通过智能技术生成

队列

队列也是一种有序数据项构成的数据结构,和栈不相同的是,操作队列的数据项是一边进一边出,只能在队尾(rear)插入数据项在队头(front)移出数据项并且栈的数据项是后进先出(last in first out),而队列是先进先出(first in fisrt out)。

可以用数组简单实现一个队列,定义两个下标front和rear代表队列的首尾,数据项存储在数组中的data[front]…data[rear]。

队列的存储方式也有两种可以选择:
1.让下标front恒为数组data的起始位置data[0],每次有元素出列,让后面的元素不断往前移。
2.让队列形成一个类似环的结构,当不断有元素出列,front下标前的空间被空出来;又不断有元素进列,当rear走到数组的末端的时候,就可以利用front前端的空间,重新再利用空间。也就是说队列的第一个元素紧跟着最后一个元素的后面,而队列最后一个元素的下一个元素就是队列的第一个元素。这种方式相对第一种效率就比较高一些。

A B
0 1 2 3 4

假设现在有个data数组实现的队列,已经有A、B两个元素进入队列,front指向下标0,rear指向下标1。
当再加入C、D、E三个元素又将A出列,队列如下图所示

B C D E
0 1 2 3
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值