数据结构(严蔚敏)完整第1章PPT
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
顺序映象(顺序存储方法)
以相对的存储位置表示后继关系
例如:令 y 的存储位置和 x 的存储位置之 间差一个常量 C
而 C 是一个隐含值,整个存储结构中只 含数据元素本身的信息
xy
24
2007年9月5日星期三
.
链式映象(链式存储方法)
称之为组合项
15
2007年9月5日星期三
.
数据结构:带结构的数据元素的集合
假设用三个 4 位的十进制数表示一个含 12 位 数的十进制数。
例如: 3214,6587,9345 ─ a1(3214),a2(6587),a3(9345)
则在数据元素 a1、a2 和 a3 之间存在着
“次序”关系 a1,a2、a2,a3
为计算机处理问题编制 一组指令集
处理问题的策略
问题的数学模型
6 .
例如: 数值计算的程序设计问题
结构静力分析计算 ─━ 线性代数方程组
全球天气预报 ─━ 环流模式方程 (球面坐标系)
7
2007年9月5日星期三
.
非数值计算的程序设计问题
例一: 求一组(n个)整数中的最大值 算法: ? 基本操作是“比较两个数的大小” 模型:?取决于整数值的范围
第一章 绪论
1
2007年9月5日星期三
.
【课前思考】
你过去是否听说过"数据结构"?你知 道数据结构是一门讨论什么内容的学科吗?
同学们见过《算法+数据结构=程序设 计》这本书吧,它正好说明数据结构的实 质是讨论程序设计的方法。通过这门课的 学习,同学们将掌握非数值计算程序设计 中用的基本方法和技巧。
8
2007年9月5日星期三
.
例二:计算机对弈
算法:? 对弈的规则和策略 模型:? 棋盘及棋盘的格局
9
2007年9月5日星期三
.
例三:足协的数据库管理
算法:? 需要管理的项目? 如何管理? 用户界面?
模型:? 各种表格
10
2007年9月5日星期三
.
概括地说:
数据结构是一门讨论“描述现实 世界实体的数学模型(非数值计算) 及其上的操作在计算机中如何表 示和实现”的学科。
19
2007年9月5日星期三
.
数据的逻辑结构可归结为以下四类:
线性结构 树形结构 图状结构 集合结构
20
2007年9月5日星期三
.
数据结构的形式定义为:
数据结构是一个二元组
Data_Structures = (D, S)
其中:D 是数据元素的有限集,
S 是 D上关系的有限集。
21
2007年9月5日星期三
row = {<a1,a2>,<a2,a3>,<a4,a5>,<a5,a6>}
列的次序关系:
col = {<a1,a4>,<a2,a5>,<a3,a6>}
a1 a3 a5
a1 a2 a3
a2 a4 a6
a4 a5 a6
17
2007年9月5日星期三
.
数据结构:带结构的数据元素的集合
再例,在一维数组 {a1, a2, a3, a4, a5, a6} 的数据元素之间存在如下的次序关系:
【知识点】
数据、数据元素、数据结构、数据类型、抽象数据类 型、算法及其设计原则、时间复杂度、空间复杂度。
3
2007年9月5日星期三
.
【学习指南】
1. 熟悉各名词、术语的含义,掌握基本概念, 特别是数据的逻辑结构和存储结构之间的关系。分 清哪些是逻辑结构的性质,哪些是存储结构的性质。
2. 了解抽象数据类型的定义、表示和实现方法。 3. 熟悉类C语言的书写规范,特别要注意值调 用和引用调用的区别,输入、输出的方式以及错误 处理方式。 4. 理解算法五个要素的确切含义和对算法正确 性的理解。 5. 掌握计算语句频度和估算算法时间复杂度的 方法。
4
2007年9月5日星期三
.
1.1 数据结构讨论的范畴 1.2 基本概念 1.3 算法和算法的量度
5
2007年9月5日星期三
.
1.1 数据结构讨论的范畴
Niklaus Wirth:
Algorithm + Data Structures = Programs
程序设计:
算法: 数据结构:
2007年9月5日星期三
{<ai, ai+1>| i=1, 2, 3, 4, 5}
可见,不同的“关系”构成不同的“结构”
或者说,数据结构是相互之间存在着某
种关系的数据元素的集合。
பைடு நூலகம்
18
2007年9月5日星期三
.
数据结构包括以下几个方面:
数据元素之间的逻辑关系,即逻辑结构 数据元素及其关系在计算机存储器中的 存储方式,即数据的存储结构 施加在该数据上的操作,即数据的运算
3214,6587,9345 ≠ 6587,3214,9345
a1 a2
2007年9月5日星期三
a3 . a2
a1
a163
数据结构:带结构的数据元素的集合
又例,在2行3列的二维数组{a1, a2, a3, a4, a5, a6}
中六个元素之间 存在两个关系:
a1 a2 a3 a4 a5 a6
行的次序关系:
.
数据元素:
是数据(集合)中的一个“个体”
是数据结构中讨论的基本单位
数据对象是性质相同的数据元素的集合
是数据的子集
14
2007年9月5日星期三
.
数据项:是数据结构中讨论的最小单位
数据元素可以是数据项的集合 例如:描述一个运动员的数据元素可以是
姓名 俱乐部名称 出生日期 参加日期 职务 业绩
年月日
11
2007年9月5日星期三
.
1.2 基本概念
一、数据与数据结构 二、数据类型 三、抽象数据类型
12
2007年9月5日星期三
.
一、数据与数据结构
数据:
所有能被输入到计算机中,且能被 计算机处理的符号的集合。
是计算机操作的对象的总称。
是计算机处理的信息的某种特定的
符号表示形式。
13
2007年9月5日星期三
.
数据的存储结构(物理结构)
—— 逻辑结构在存储器中的映象
“数据元素”的映象 ? “关系”的映象 ?
22
2007年9月5日星期三
.
数据元素的映象方法:
用二进制位(bit)的位串表示数据元素 (321)10 = (501)8 = (101000001)2
23
2007年9月5日星期三
.
关系的映象方法:(表示x, y的方法)
2
2007年9月5日星期三
.
【学习目标】
熟悉各名词、术语的含义,掌握基本概念。理解算法 五个要素的确切含义。掌握计算语句频度和估算算法时 间复杂度的方法。
【重点和难点】
本章讨论的都是一些基本概念,因此没有难点,重点 在于了解有关数据结构的各个名词和术语的含义,以及语 句频度和时间复杂度、空间复杂度的估算 。
以相对的存储位置表示后继关系
例如:令 y 的存储位置和 x 的存储位置之 间差一个常量 C
而 C 是一个隐含值,整个存储结构中只 含数据元素本身的信息
xy
24
2007年9月5日星期三
.
链式映象(链式存储方法)
称之为组合项
15
2007年9月5日星期三
.
数据结构:带结构的数据元素的集合
假设用三个 4 位的十进制数表示一个含 12 位 数的十进制数。
例如: 3214,6587,9345 ─ a1(3214),a2(6587),a3(9345)
则在数据元素 a1、a2 和 a3 之间存在着
“次序”关系 a1,a2、a2,a3
为计算机处理问题编制 一组指令集
处理问题的策略
问题的数学模型
6 .
例如: 数值计算的程序设计问题
结构静力分析计算 ─━ 线性代数方程组
全球天气预报 ─━ 环流模式方程 (球面坐标系)
7
2007年9月5日星期三
.
非数值计算的程序设计问题
例一: 求一组(n个)整数中的最大值 算法: ? 基本操作是“比较两个数的大小” 模型:?取决于整数值的范围
第一章 绪论
1
2007年9月5日星期三
.
【课前思考】
你过去是否听说过"数据结构"?你知 道数据结构是一门讨论什么内容的学科吗?
同学们见过《算法+数据结构=程序设 计》这本书吧,它正好说明数据结构的实 质是讨论程序设计的方法。通过这门课的 学习,同学们将掌握非数值计算程序设计 中用的基本方法和技巧。
8
2007年9月5日星期三
.
例二:计算机对弈
算法:? 对弈的规则和策略 模型:? 棋盘及棋盘的格局
9
2007年9月5日星期三
.
例三:足协的数据库管理
算法:? 需要管理的项目? 如何管理? 用户界面?
模型:? 各种表格
10
2007年9月5日星期三
.
概括地说:
数据结构是一门讨论“描述现实 世界实体的数学模型(非数值计算) 及其上的操作在计算机中如何表 示和实现”的学科。
19
2007年9月5日星期三
.
数据的逻辑结构可归结为以下四类:
线性结构 树形结构 图状结构 集合结构
20
2007年9月5日星期三
.
数据结构的形式定义为:
数据结构是一个二元组
Data_Structures = (D, S)
其中:D 是数据元素的有限集,
S 是 D上关系的有限集。
21
2007年9月5日星期三
row = {<a1,a2>,<a2,a3>,<a4,a5>,<a5,a6>}
列的次序关系:
col = {<a1,a4>,<a2,a5>,<a3,a6>}
a1 a3 a5
a1 a2 a3
a2 a4 a6
a4 a5 a6
17
2007年9月5日星期三
.
数据结构:带结构的数据元素的集合
再例,在一维数组 {a1, a2, a3, a4, a5, a6} 的数据元素之间存在如下的次序关系:
【知识点】
数据、数据元素、数据结构、数据类型、抽象数据类 型、算法及其设计原则、时间复杂度、空间复杂度。
3
2007年9月5日星期三
.
【学习指南】
1. 熟悉各名词、术语的含义,掌握基本概念, 特别是数据的逻辑结构和存储结构之间的关系。分 清哪些是逻辑结构的性质,哪些是存储结构的性质。
2. 了解抽象数据类型的定义、表示和实现方法。 3. 熟悉类C语言的书写规范,特别要注意值调 用和引用调用的区别,输入、输出的方式以及错误 处理方式。 4. 理解算法五个要素的确切含义和对算法正确 性的理解。 5. 掌握计算语句频度和估算算法时间复杂度的 方法。
4
2007年9月5日星期三
.
1.1 数据结构讨论的范畴 1.2 基本概念 1.3 算法和算法的量度
5
2007年9月5日星期三
.
1.1 数据结构讨论的范畴
Niklaus Wirth:
Algorithm + Data Structures = Programs
程序设计:
算法: 数据结构:
2007年9月5日星期三
{<ai, ai+1>| i=1, 2, 3, 4, 5}
可见,不同的“关系”构成不同的“结构”
或者说,数据结构是相互之间存在着某
种关系的数据元素的集合。
பைடு நூலகம்
18
2007年9月5日星期三
.
数据结构包括以下几个方面:
数据元素之间的逻辑关系,即逻辑结构 数据元素及其关系在计算机存储器中的 存储方式,即数据的存储结构 施加在该数据上的操作,即数据的运算
3214,6587,9345 ≠ 6587,3214,9345
a1 a2
2007年9月5日星期三
a3 . a2
a1
a163
数据结构:带结构的数据元素的集合
又例,在2行3列的二维数组{a1, a2, a3, a4, a5, a6}
中六个元素之间 存在两个关系:
a1 a2 a3 a4 a5 a6
行的次序关系:
.
数据元素:
是数据(集合)中的一个“个体”
是数据结构中讨论的基本单位
数据对象是性质相同的数据元素的集合
是数据的子集
14
2007年9月5日星期三
.
数据项:是数据结构中讨论的最小单位
数据元素可以是数据项的集合 例如:描述一个运动员的数据元素可以是
姓名 俱乐部名称 出生日期 参加日期 职务 业绩
年月日
11
2007年9月5日星期三
.
1.2 基本概念
一、数据与数据结构 二、数据类型 三、抽象数据类型
12
2007年9月5日星期三
.
一、数据与数据结构
数据:
所有能被输入到计算机中,且能被 计算机处理的符号的集合。
是计算机操作的对象的总称。
是计算机处理的信息的某种特定的
符号表示形式。
13
2007年9月5日星期三
.
数据的存储结构(物理结构)
—— 逻辑结构在存储器中的映象
“数据元素”的映象 ? “关系”的映象 ?
22
2007年9月5日星期三
.
数据元素的映象方法:
用二进制位(bit)的位串表示数据元素 (321)10 = (501)8 = (101000001)2
23
2007年9月5日星期三
.
关系的映象方法:(表示x, y的方法)
2
2007年9月5日星期三
.
【学习目标】
熟悉各名词、术语的含义,掌握基本概念。理解算法 五个要素的确切含义。掌握计算语句频度和估算算法时 间复杂度的方法。
【重点和难点】
本章讨论的都是一些基本概念,因此没有难点,重点 在于了解有关数据结构的各个名词和术语的含义,以及语 句频度和时间复杂度、空间复杂度的估算 。