首页 > 编程语言 > 详细

循环数组

时间:2021-01-02 22:51:30      阅读:30      评论:0      收藏:0      [点我收藏+]

简介

  • 本篇关于数据结构循环数组的介绍。
  • Java中的部分对队列Queue是基于循环数组所构建的。

循环数组

  • 循环数组在实现队列Queue这种FIFO结构的时候被采用,它可以提高空间的利用率。

技术分享图片

  • 用循环数组的方式实现时,为了方便判断队列时候为空或者蛮,可以采用以下方式:
    1. 设队列最大的容量为max_size,那么需要创建一个长度为max_size + 1的数组。因为队列中的状态共有0 ~ max_size总共max_size + 1种状态;
    2. 如图所示,其中rear为当前队列尾部元素在数组中的下标位置,而front为当前队列头部元素的逻辑上前一个位置的数组下标,存储队列元素的数组下标范围是0 ~ max_size,则:
      1. 初始时,front = rear = 0
      2. 队列为满的条件是:(rear + 1) % (max_size + 1) == front
      3. 队列为空的条件是:front == rear
      4. 当有元素入队时,先判断是否为满,不满则更新尾部位置:rear = (rear + 1) % (max_size + 1),然后将新入队的元素添加到数组下标为rear处;
      5. 但有元素出队时,先判断是否为空,不空则更新头部位置:front = (front + 1) % (max_size + 1),数组下标为front的元素将作为出队元素。

技术分享图片

总结

  • 以上即为循环数组的全部内容。

循环数组

原文:https://www.cnblogs.com/phax2/p/14222791.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!