- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
a 18 b 20
d 15 c
a 18 18 b
d 15 c
2
1.1 什么是数据结构
数据结构: 数据结构:数据结构是一门研究非数值计算的程 序设计问题中计算机的操作对象以及它们之间的 操作对象以及它们 序设计问题中计算机的操作对象以及它们之间的 关系和操作等的学科。(P3 等的学科。(P3) 关系和操作等的学科。(P3) 数据结构的三个层次: 数据结构的三个层次: 逻辑结构(问题的数学模型) 1、逻辑结构(问题的数学模型) 2、存储结构 3、建立在二者之上的基本运算
3
1.1 什么是数据结构
程序设计 = 数据结构 + 算法 程序设计: 程序设计:为计算机处理问题编制的一组指令集 算法:处理问题的策略 算法:
** 4
教材情况
1.《数据结构》 1.《数据结构》严蔚敏等 清华大学出版社 2.《数据结构与算法》 2.《数据结构与算法》 廖明宏 郭福顺等 高等教育出版社
13
1.2 基本概念和术语
2、存储结构(物理结构) 、存储结构(物理结构)
数据结构包括结点的值及结点之间的关系。 数据结构包括结点的值及结点之间的关系。 (1).顺序存储结构; (1).顺序存储结构; 顺序存储结构 (2).链接存储结构; (2).链接存储结构; 链接存储结构 (3).索引存储结构; (3).索引存储结构; 索引存储结构 (4).散列存储结构。 (4).散列存储结构。 散列存储结构
数据结构与算法
Data Structures
教学安排 讲课学时: 讲课学时:42 jh20070826@ 教师: 教师:黄俊恒
1
1.1 什么是数据结构 例1.1、煤气管道的铺设问题。在城市的各小 1.1、煤气管道的铺设问题。 区之间铺设煤气管道,共有4个小区,由于地理环 区之间铺设煤气管道,共有4个小区, 境不同等因素使各条管线所需投资不同, 境不同等因素使各条管线所需投资不同,如何使 投资成本最低? 投资成本最低? 19 a 18 18 b 20 d 15 c 25
19
2、抽象数据类型的形式定义 抽象数据类型的形式定义可用三元组 表示: 表示: D,S,P) (D,S,P) 是数据对象, 上的关系集, D是数据对象,S是D上的关系集,P是 的基本操作集。 对D的基本操作集。 数据结构与抽象数据型的关系? 数据结构与抽象数据型的关系? 数据结构是抽象数据型中的数学模型, 数据结构是抽象数据型中的数学模型, 抽象数据型是数据结构加上一组操作。 抽象数据型是数据结构加上一组操作。
27
1.3 抽象数据类型的表示与实现
(9) 基本函数有 max(表达式1,…,表达式n) 表达式1, max(表达式1, ,表达式n) min(表达式1,…,表达式n) 表达式1, min(表达式1, ,表达式n) abs(表达式 表达式) abs(表达式) floor(表达式 表达式) floor 表达式 ceil(表达式 表达式) ceil(表达式) eof(表达式 表达式) eof(表达式) eoln(表达式 表达式) eoln(表达式)
编一个函数PURGE 删除线性表L PURGE, 例1.2 编一个函数PURGE,删除线性表L中 所有重复出现的元素。 所有重复出现的元素。
17
抽象数据类型Abstract 抽象数据类型Abstract Data Types(ADT) void PURGE(LIST L) {position p,q; p=FIRST(L); while(p!=END(L)){ q=NEXT(p,L); while(q!=END(L)) if (same(RETRIEVE(p,L),RETRIEVE(q,L))) DELETE(q,L); else q=NEXT(q,L); p=NEXT(p,L); }}
8
1.2 基本概念和术语
3.数据项 3.数据项 是数据的不可分割的最小单位, 一个数据元素 是数据的不可分割的最小单位, 可由若干个数据项组成。是对数据元素属性的描述 属性的描述。 可由若干个数据项组成。是对数据元素属性的描述。 有时称域或字段 域或字段。 有时称域或字段。 例如:学生( 数据元素) 例如:学生( 数据元素) 姓名 性别 年龄 专业 班级
前序课程 后序课程
5
考试考核 1.出勤与作业 1.出勤与作业 每缺少一次扣3分,满三次扣10分,满 每缺少一次扣3 满三次扣10分 10 四次取消考试资格。 四次取消考试资格。 2.实验 2.实验 占总成绩30% 占总成绩30% 3.期末闭卷考试 3.期末闭卷考试 占总成绩70% 占总成绩70%
*** 6
28
1.3 抽象数据类型的表示与实现
(10) 逻辑运算
抽象数据型的表示和实现包括数据 模型的表示和在其上定义的各种操作的 实现。 实现。
***
29
1.4 算法和算法分析 1.4.1 算法 算法( ):是对特定问题求解步骤的 算法(Algorithm):是对特定问题求解步骤的 ): 一种描述,它是指令(规则)的有限序列, 一种描述,它是指令(规则)的有限序列,其中 每一条指令表示一个或多个操作。 每一条指令表示一个或多个操作。 算法的特征: 算法的特征: 输入、 输出、 确定性、 ①输入、②输出、③确定性、 有穷性、 可行性。 ④有穷性、⑤可行性。 算法与程序的区别? 算法与程序的区别? 程序不一定满足有穷性。 程序不一定满足有穷性。
10
数据结构的四种基本结构
A 1. 集合 2. 线性结构 A B D 4. 图状结构 B D A C C B D B A 3. 树型结构 C 例1-2 人机对弈 P1) (P1) 例1-3 交通灯管理 P2) (P2)
11
C
D
例1-1 图书检 P1) 索(P1)
1.2 基本概念和术语
数据结构的形式定义: 数据结构的形式定义: Data Structure=(D,S) 其中D是数据无素的集合, 其中D是数据无素的集合,S是D上关系的 集合。 集合。
1.3 抽象数据类型的表示与实现 选择语句有: (5) 选择语句有: if…else if else switch 循环语句有: (6) 循环语句有: for while do while
26
1.3 抽象数据类型的表示与实现 结束语句有: (7) 结束语句有: return break exit (8) 输入输出 scanf printf
16
抽象数据类型Abstract 抽象数据类型Abstract Data Types(ADT)
表类型LIST,位置position,FIRST(),END(), 表类型LIST,位置position,FIRST(),END(), LIST NEXT(),SAME(),DELETE(),RETRIEVE().
数 据 项
9
1.2 基本概念和术语
4. 数据对象 性质相同的元素的集合叫做数据对象, 性质相同的元素的集合叫做数据对象, 是数据的子集。 是数据的子集。 5、数据结构: 数据结构: 数据结构指的是数据元素之间的抽 象的相互关系, 象的相互关系,是数据元素及其相互间 的关系的数学描述。 的关系的数学描述。 数据结构的三个层次: 数据结构的三个层次: (1)、逻辑结构(问题的数学模型) (1)、逻辑结构(问题的数学模型) (2)、 (2)、存储结构 (3)、 (3)、建立在二者之上的基本运算
12
1.2 基本概念和术语
数据结构: 数据结构:数据结构指的是数据元素之间 的抽象的相互关系, 的抽象的相互关系,是数据元素及其相 互间的关系的数学描述。 互间的关系的数学描述。 数据结构的三个层次: 数据结构的三个层次: 逻辑结构(问题的数学模型) 1、逻辑结构(问题的数学模型) 2、存储结构 3、建立在二者之上的基本运算
22
1.3 抽象数据类型的表示与实现
数据结构的表示(存储结构) (2) 数据结构的表示(存储结构)用类 型定义(typedef)描述, 型定义(typedef)描述,数据元素类 型约定为ElemType, ElemType,由用户使用该数据 型约定为ElemType,由用户使用该数据 类型时自行定义。 类型时自行定义。
第一章
绪论
1.1 1.2 1.3 1.4
什么是数据结构 基本概念和术语 抽象数据类型的表示和实现 算法和算法分析
7
1.2 基本概念和术语
1.数据 1.数据 数据是用于描述客观事物的符号表示, 描述客观事物的符号表示 数据是用于描述客观事物的符号表示,在计 算机科学中指一切可以输入到计算机中的并由计 算机程序处理的符号的集合。 处理的符号的集合 算机程序处理的符号的集合。 2.数据元素 2.数据元素 数据的基本单位是数据元素, 数据的基本单位是数据元素, 通常作为一个 整体进行考虑和处理。一般由若干数据项组成。 数据项组成 整体进行考虑和处理。一般由若干数据项组成。 结点、 数据元素有时又称为结点 记录或表目。 数据元素有时又称为结点、记录或表目。
20
2、抽象数据类型的形式定义 该书对抽象数据型的抽述方式 抽象数据类型名{ ADT 抽象数据类型名{ 数据对象: 数据对象的定义> 数据对象:<数据对象的定义> 数据关系: 数据关系的定义> 数据关系:<数据关系的定义> 基本操作: 基本操作的定义> 基本操作:<基本操作的定义> ADT抽象数据类型名 }ADT抽象数据类型名
14
1.2 基本概念和术语
6.数据类型 6.数据类型 是一个值的集合和定义在这个值的集合上 的一组操作的总称 操作的总称。 的一组操作的总称。 分为原子数据类型和结构数据类型。 分为原子数据类型和结构数据类型。
15
抽象数据类型Abstract 抽象数据类型Abstract Data Types(ADT) int=({x︱ Z},{+,-,*,/,%,≤ int=({x︱x∈Z},{+,-,*,/,%,≤,≥,==}) ADT数据型是程序设计语言中数据类 ADT数据型是程序设计语言中数据类 型概念的推广和抽象。 型概念的推广和抽象。 例如:对一个线性表L 例如:对一个线性表L,我们可以声明它的 类型,数据元素的类型,定义它的有关操作: 类型,数据元素的类型,定义它的有关操作: 表类型LIST,位置position,FIRST(),END(), 表类型LIST,位置position,FIRST(),END(), LIST NEXT(),SAME(),DELETE(),RETRIEVE().