前言
这两天复习了数据结构,主要是向量和列表,没有太大难度,代码很容易懂,所以只做简单记录。
简单总结(向量与列表)
线性结构:最基本的是序列(至少存放数据具有逻辑线性,一个接一个)
依据逻辑次序与物理次序的不同,又分为向量和列表(根本的差别即物理实现的不同,随之带来的各项操作的差异,以适应不同的场景)
- 向量(vector)即数组的抽象与泛化
- 列表(list)即链表的抽象与泛化
静态操作(不改变数据结构的具体内容):查找,获取元素等
动态操作(会改变具体内容):如插入元素,删除元素,排序等
- 向量即 逻辑次序与物理次序相统一,与之带来的是静态操作的高效率,但动态操作效率较低
- 列表即 线性逻辑次序,但物理次序任意,元素之间有索引(链接)来维持联系,主要优势是动态操作效率高
对比
插入删除(动态) | 查找获取(静态) | |
---|---|---|
向量vector | O(n) | O(1) |
列表list | O(1) | O(n) |