数据结构-循环数组实现队列

本文介绍如何使用循环数组实现队列,重点在于理解(front+1)% maxSize 的操作,确保在队列满时能正确插入新数据,避免前后指针碰撞。同时指出在队列满后插入数据时不再进行判断,直接覆盖原有数据。
摘要由CSDN通过智能技术生成
* 队列的特点:先进先出
 * 与堆栈相比,栈的操作始终是一个方向,而队列的操作在两端
 *
 * 如果按照原始的方法(即不考虑空间浪费,直接插,插到底拉倒)实现队列,那么当一边添加,一边删除时,添加到最后,rear到索引最大值(这时又不能往回插入)
 * 必会造成大量空间浪费,为了尽可能利用资源空间,采用循环数组的机制来减少浪费
 *
 * 使用循环数组会出现的问题:
 *     1.如何实现循环数组?
 *  2.实现了循环数组后,当队列空 rear==front , 当队列满也是 rear==front ,那么如何区分这两者?
 *  

 *  回答:

     关键点在于(front+1)% maxSize ,下面两个操作都是基于此完成的

 *     1.实现循环数组很简单,只需要对索引变量取余即可
 *     2.rear==front当此条件成立,队列为空,这点不变,主要更改队列满的条件,在对队列操作中

 *  让rear front之间至少空一个位,让他两碰不到一起即可

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值