一、什么是数据结构
1. 什么是数据结构
程序设计 = 数据结构 + 算法
程序设计:为计算机处理问题编制一组指令集
算法:处理问题的策略
数据结构:问题的数学模型
数据结构就是数据元素相互之间存在的一种或多种特定关系的集合
2. 数据结构分为 逻辑结构 和 物理结构
逻辑结构:数据对象中数据元素之间的相互关系
物理结构:数据的逻辑结构在计算机中的存储形式
3. 四大逻辑结构
集合结构:数据元素除了同属于一个集合外,它们之间没有其他关系
线性结构:数据元素之间一对一的关系
树形结构:数据元素之间存在一对多的层次关系
图形结构:数据元素是多对多的关系
4. 物理结构
顺序存储结构:把数据元素存放在地址连续的存储单元里,其数据间的逻辑关系和物理关系是一致的(eg:array)
链式存储结构:把数据元素存放在任意的存储单元里,存储关系并不能反映逻辑关系,需要用指针存放数据元素的地址
二、算法
1. 算法的五个基本特征:输入、输出、有穷性、确定型和可行性
输入:算法具有 零个或多个 输入
输出:算法至少有 一个或多个 输出(一定要有输出)
有穷性:算法在执行有限的步骤之后,自动结束而不会出现无限循环,并且每一个步骤在可接受的时间内完成
确定性:算法的每一个步骤都具有确定的含义 ,不会出现二义性。算法在一定条件下,只有一条执行路径,相同的输入只能有唯一的输出结果。算法的每个步骤都应该被精确定义而无歧义。
可行性:算法的每一步都必须是可行的,每一步都能通过执行有限次数完成
2.算法设计的要求
正确性:算法至少应该具有输入、输出和加工处理无歧义性,能正确反映问题的需求,能够得到问题的正确答案。
可读性:算法设计另一目的是为了便于阅读、理解和交流
健壮性:当输入数据不合法时,算法也能做出相关处理,而不是产生异常、崩溃或莫名其妙的结果。
时间效率高和存储量低