环形数组

(Circular Array/Ring Buffer)是一种通过模运算实现循环复用的数组结构,避免普通数组增删时的元素移位开销。

核心特性

  • 底层是普通静态数组,通过头指针(head)和尾指针(tail)标记有效区间
  • 利用模运算(index % 数组长度)实现指针循环移动,无需移动元素
  • 支持 O(1) 时间复杂度的头尾增删操作

应用场景

  • 实现队列/双端队列(避免出队时的数组移位)
  • 实现栈(简化动态数组的扩缩容逻辑)
  • 循环缓冲区(如网络IO、日志缓冲)

相关概念


Interactive Graph