2021-12-08 03:49:19 +08:00
|
|
|
# 数组
|
|
|
|
|
|
|
|
|
|
数据与链表差异 [参考这里](README.md)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
## 循环数组
|
|
|
|
|
|
|
|
|
|
|
2021-12-08 03:57:51 +08:00
|
|
|
特点
|
|
|
|
|
|
|
|
|
|
* 长度固定,下表不会越界,使用2个指针标识 头尾 下标; 默认都是 0
|
|
|
|
|
* 方便用来实现 栈,队列;比如 队列实现时,新增元素,头下表+1; 删除元素,尾下标+1
|
|
|
|
|
|
|
|
|
|
比如Java的 ArrayBlockingQueue 就是一个 带有 takeIndex 和 putIndex 的环形数组。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
缺点:头尾之间的元素不好维护,从中间删除了某个元素,会出现数组空隙。
|
2021-12-08 03:49:19 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2021-12-08 03:57:51 +08:00
|
|
|
数据结构
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
```
|
|
|
|
|
|
2021-12-08 03:49:19 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|