经典教材:严蔚敏,吴伟民 代码:高伟民
数据结构概述
定义:我们如何把现实中大量而复杂的问题以特定的数据类型和特定的存储结构保存到主存储器(内存)中,以及在此基础上为实现某个功能(比如查找某个元素)而执行的相应操作,这个相应的操作也叫算法。
数据结构=个体+个体的关系
算法:对存储数据的操作
算法:解题的方法和步骤
衡量算法的标准:
- 时间复杂度:程序要执行的次数,而非执行的时间。
- 空间复杂度:算法执行过程中大概所占用的最大内存
- 难易程度
- 健壮性
预备知识
- 指针
- 结构体
- 动态内存的分配和释放
模块一:线性结构
连续存储【数组】 离散存储【链表】
常见应用:栈 队列
专题:递归
- 1+2+3+...+100
- 求阶乘
- 汉诺塔
- 走迷宫
模块二:非线性结构
- 树
- 图
模块三:查找和排序
- 折半查找
- 排序:冒泡,插入,选择