数据结构基础--数组、链表、栈、队列、哈希表
之前是学过的,但是快忘了,跟着《漫画算法》重新学一遍。
物理结构
- 数组
- 链表
是数据结构的根基
1.数组
- 像军队,有序存储,占据一片连续内存
- 用下标查询方便,插入删除麻烦,适合多读少写
2.链表
- 像地下党,无序存储,在内存见缝插针
- 查询麻烦,需要从头开始依次查找;插入删除方便,适合少读多写
逻辑结构(线性)
- 栈
- 队列
- 哈希表(散列表)
1.栈
像羽毛球盒,先进后出,适合用来返回上一步(回溯),比如用于迷宫寻路,这一步走不通返回上一步尝试另一个方向
2.队列
像隧道,先进先出,适合用来按照之前顺序依次操作,排队,先来的先处理
3.哈希表
像字典,使用数组进行保存,数组下标通过哈希函数与其对应的关键字Key对应。当多个key对应一个下标时,说“发生哈希冲突”,可通过开放寻址或者链表法解决