【C++】队列及基本操作

相关概念

队列:只允许在一段进行插入操作,而在另一端进行删除操作的线性表
在这里插入图片描述
性质:先进先出
循环队列:头尾相接的顺序存储队列称为循环队列。
在这里插入图片描述
队头队尾指针:为了避免队列只有一个元素时,队头和队尾重合,引入两个指针,front指向队头,rear指向队尾的下一个元素。
在这里插入图片描述
空队列:front == rear
满队列:为了更好的区分空队列和满队列,我们假定队列中还有一个空闲单元时称为满队列。(否则空队列和满队列时,均有front == rear,如下图)
在这里插入图片描述
满队列条件:(rear+1)% QueueSize == front
(4+1)%5 = 0 (1+1)%5=2
在这里插入图片描述
队列长度计算公式:(rear-front+QueueSize)%QueueSize

常见操作

  1. q.push(item)
  2. q.pop()
  3. q.front()
  4. q.back()
  5. q.size()
  6. q.empty()
# include<queue>

//使用push
queue<string> q;
q.push("Hello World");
q.push("hhh");

//使用size
q.size()   //返回2

//使用front
q.front() //返回"Hello World!''

ps:更多数据结构知识详见:
常见数组结构与算法

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值