前序
程序是使用程序设计语言精确描述的实现模型
- 分析阶段
- 设计阶段(数据结构算法)
- 编码阶段
- 调试和维护
(可行解、最优解、次有解)
抽象数据类型
具有一定行为(操作)的抽象(数据)类型
类型:一组值(或对象)的集合
数据类型:在计算机(语言)中可以使用的一个类型,不但包括这个类型的值的集合,还包括定义在这个类型上的一组操作
实质:抽象出了数据类型的使用要求,而把它的具体表示方法和运算的实现细节都隐藏起来
抽象数据类型支持数据类型的实现与使用分离的原则,允许独立地考虑数据类型的外部接口和内部实现
数据结构
计算机中表示(存储)的,具有一定逻辑关系和行为特征的一组数据(或者说抽象数据类型的物理实现)。其中每个数据元素称为这个结构的一个结点
数据结构的三要素:逻辑结构(数学模型)
存储结构(物理结构)
操作
数据结构的分类
(逻辑结构 )
集合结构 ⊆ 线性结构 ⊆ 树形结构 ⊆ 复杂结构
(存储结构)
顺序表示 链接表示 散列表示 索引表示
行为的规范由数据类型决定
行为的实现由算法决定,但与存储表示关系密切结点与结构
结点是数据结构中的基本单位,也称为元素、记录或表目等。结点类型有
初等类型:字符类型、整数类型、浮点数类型、布尔类型
组合类型:由初等类型通过某种方式(例如数组或者结构等)构造而成的。不同构造方式形成不同类型
算法
是由有穷规则构成的为解决某一问题的运算序列(方法或过程),可以有若干个输入(出)
性质:
有穷性 确定性 可行性 正确性
算法的分析:度量算法性质的工程
问题的规模 、空间单位、时间单位
时间代价(复杂性)和空间代价(复杂性)
大O表示法
线性表
是0个或多个元素(表目)的有穷序列
除表中第一个元素K0只有一个