队列

队列学习重点整理:

1、什么是队列?先进先出即为队列。

2、用数组和链表分别实现队列。

3、当队列进行若干次入队出队操作后,数据都会集中在后部,导致前面即使有空间也不能插入元素,所以一个解决方法就是进行数据搬移,即:判断当队列中不能插入元素且队列还不满时,将队列中的元素搬移至最前面的位置,重新更新队头、队尾的指针即可。

4、循环队列的实现:重点是在循环队列中如何判断已满,若head表示头指针,tail表示尾指针,则队列满的条件是(tail+1)%n == head,其中n是队列的容量。

5、阻塞队列:当队列为空时,就不能再出队了,当队列为满时,就不能再入队了,即为阻塞,对应一个生产者-消费者模型。

6、并发队列:多线程的情况下,会有多个线程同时操作队列,这个时候就会存在线程安全问题,线程安全的队列就叫做并发队列。简单的实现方式是在入队出队的基础上加锁,锁的粒度大并发度会比较低,同一时刻仅允许一个存或取操作。

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值