数据结构-代码随想录
数组
- 类型
-
一维数组
-
多维数组
-
- 存储方式
- 在内存连续存储,数组名就是数组的第一个元素的地址 a = &a[0]
- 应用场景
- 数据量固定不变,频繁查询,较少增删
链表
- 类型
- 单链表
- 双链表
- 循环链表
- 存储方式
- 链表中的节点在内存中不是连续分布的,散落在内存中,依靠操作系统的内存管理进行分配
- 操作
- 删除节点
- 添加节点
- 时间复杂度
- 插入/删除:O(1)
- 查询:O(n)
- 应用场景
- 数据量不固定,经常增删,较少查询
哈希表
- 解决的问题
- 快速判断一个元素是否出现在集合里
- 牺牲了空间换时间
- 常见的三种哈希结构
- 数组
- set(集合)
- unordered_set
- 查询和增删效率是最优
- set
- 数据有序,不重复
- multiset
- 数据有序,可重复
- unordered_set
- map(映射)
- key-value数据结构
- key的存储方式使用红黑树
- 类型
- unordered_map
- 哈希表实现
- map
- 红黑树实现
- multimap
- 红黑树实现
- unordered_map