1 前言
为了准备秋招,开始准备数据结构与算法,但是作为非科班的我,直接刷LeetCode或者看一些书籍实在是看不下去,这时候就想着看视频课程,想起来之前很早就买过小甲鱼的官网的VIP,于是就搜了小甲鱼主讲的数据结构和算法的课程,希望能配合他的视频课程将这个课过一遍!加油!
2 导论部分
2.1 什么是数据结构?
- 程序设计 = 数据结构 + 算法
- 数据结构就是关系,没错,就是数据元素相互之间存在的一种或多种特定关系的集合
2.2 数据结构的种类
- 物理结构:研究的的就是如何把数据元素存储到计算机的存储器中
- 逻辑结构(更重要):指数据对象中数据元素之间的相互关系 。
2.3 4大逻辑结构
- 集合结构
- 线性结构
- 树形结构
- 图形结构【杂交…】
2.4 数据元素的存储结构
前面提到了数据结构的种类中—物理结构的定义为:研究的的就是如何把数据元素存储到计算机的存储器中 。而数据元素的存储结构形式有两种:
-
顺序存储
- 定义:把数据元素存放在地址连续的存储单元里,其数据间的逻辑关系和物理关系是一致的。
- 举例:编程语言的数组结构
- 图示:
-
链式存储
- 定义:把数据元素存放在任意的存储单元里,这组存储单元可以是连续的,也可以是不连续的。
- 注:由于链式存储无法反映逻辑关系,于是需要用一个指针存放数据元素的地址 ,这样通过地址就可以找到相关联数据元素的位置 。
- 举例:银行、医院的叫号系统
- 图示: