环形数组
(Circular Array/Ring Buffer)是一种通过模运算实现循环复用的数组结构,避免普通数组增删时的元素移位开销。
核心特性
- 底层是普通静态数组,通过头指针(head)和尾指针(tail)标记有效区间
- 利用模运算(
index % 数组长度)实现指针循环移动,无需移动元素 - 支持 O(1) 时间复杂度的头尾增删操作
应用场景
- 实现队列/双端队列(避免出队时的数组移位)
- 实现栈(简化动态数组的扩缩容逻辑)
- 循环缓冲区(如网络IO、日志缓冲)
(Circular Array/Ring Buffer)是一种通过模运算实现循环复用的数组结构,避免普通数组增删时的元素移位开销。
index % 数组长度)实现指针循环移动,无需移动元素