讲数据结构概述优秀课件
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
✓用图形方式表示如下:
abcde
线性逻辑结构
说明: a是b的直接前驱,b是a的直接后继 a是开始结点,e为终端结点,b、c、d为内部结 点
6、存储结构(物理结构)
数据结构在计算机中的表示(或称映象)称为 数据的存储结构,与计算机密切相关。
四种基本的存储结构: (1)顺序存储结构:用数据元素在存储器 中的相对位置来表示数据元素之间的逻辑关系。 (2)链式存储结构:在每一个数据元素中 增加一个存放地址的指针(→),用此指针来表 示数据元素之间的逻辑关系。 (3)索引存储结构 (4)散列存储结构
描述客观事物的存在计算机中的并可为计算机处理的符号 的总称,是计算机程序加工的”原料”。 (分两类:数值型 数据和非数值型数据)
2、数据元素(Data Element):
是数据的基本单位,在计算机程序中通常作为一个整体进 行考虑和处理。
或称:元素、结点、顶点、记录 对于文件,每个记录就是它的数据元素 对于数组,每个数组元素就是数据元素 对于字符串,字符就是数据元素
项目 3 100 米
200 米 跳高
算法:染色
模型:无向图
----田径赛的时间安排问题解法
(1)用顶点代表比赛项目,设用如下六个不同 的代号代表不同的项目:
跳高 跳远 标枪 铅球 100米 200米
ABC D E
F
(2)不能同时进行比赛的项目之间连上一条边。
某选手比赛的项目必定有边相连(不能同时比赛)
分两大类:线性结构 集合
非线性结构 树型结构 图型结构(网状结构)
(1)集合:结构中的数据元素除了同属于一种类型外,别无其 它关系。
(2)线性结构:结构中的数据元素之间存在一对一的关系。 (3)树型结构:结构中的数据元素之间存在一对多的关系。 (4)图型结构:结构中的数据元素之间存在多对多的关系。
(a)集合结构
存储地址 M
1001
k1
1002
k2
1003
k3
1004
k407
k7
1008
k8
1009
k9
特点:逻辑上相 邻的元素物理位
置上也相邻
链式存储结构示例:
数据结构:B=(K,R) 其中 K={k1,k2,k3,k4,k5}
R={r} r={< k1,k2>,<k2,k3>,<k3,k4>,<k4,k5>} 这是一个线性结构,它的链式存储如图所示。
(3)对图上的每个顶点染一种颜色,并且要求 有线相连的两个顶点不能具有相同颜色,而 总的颜色种类应尽可能地少。
同色可以同时比赛
姓名 丁一 马二 张三 李四 王五
项目1 A C C D B
项目2 B D E F F
项目3 E
F A
A
B
F
E
D
C
(无向图)
只需 安排四 个单位 时间进 行比赛
比赛 比赛项 时间 目
例如,有5个人,分别记为a,b,c,d ,e,其中a是b的 父亲,b是c的父亲,c是d的父亲,d是e的父亲,如果只 讨论他们之间所存在的父子关系,则可以用下面的二元 组形式化地予以表达:
B=(K,R) 其中:K={a,b,c,d,e}
R={r} r={<a, b>,<b,c>, <c, d>,<d,e>}
(b)线性结构
(c)树型结构
(d)图型结构
四类基本结构的示意图
✓数据的逻辑结构二元组表示: B=(K,R)
其中:K:数据元素的有限集合(数据对象) R:K上的关系的有限集合,用<ai,aj>表示.
ai称为直接前驱或弧尾,aj称为直接后继或弧头. 图示为:
弧
ai
aj
有向关系
边
ai
aj
无向关系
✓数据结构二元组表示法示例:
讲数据结构概述
第1讲 数据结构概述
1.1 数据结构的基本概念与术语 1.2 数据类型和抽象数据类型 1.3 算法和算法分析
1.1 数据结构的基本概念与术语
一、为什么要学习数据结构?
电子计算机的主要用途:
早期:
主要用于数值计算。
后来:
处理逐渐扩大到非数值计算领域(能处理 多种复杂的具有一定结构关系的数据)。
非数值计算的程序设计问题
o 算法+数据结构 = 程序设计
o 算法即处理问题的策略,而数据结构即为 问题的数学模型。
o 寻求数学模型的实质
o 提取操作的对象 o 找出这些操作对象之间含有的关系 o 用数学模型加以描述
非数值计算的程序设计问题
例1: 求一组(n个)整数中的最大值 算法: 基本操作是“比较两个数的大小” 模型:线性表
3、数据项(Data Item):
是具有独立意义的不可分割的最小数据单位。一个 数据元素可由若干个数据项组成。
数据元素与数据项的例子:
数据元素:运动员 数据项: 姓名 俱乐部名称 出生日期 参加日期 职务 业绩
4、数据对象(Data Object):
具有相同性质的数据元素的集合。是数据的一个子 集。
1 A,C 2 B,D 3E 4F
数据结构的定义(从研究对象来看):
数据结构是一门研究非数值计算 的程序设计问题中计算机的操作对 象以及它们之间的关系和操作等的 学科
《数据结构课程》所处的地位:
介于数学、计算 机硬件和计算机 软件三者之间的 一门核心课程。
二、数据结构的基本概念与术语
1、数据(Data):
数据对象的例子:
整数数据对象:N={0,±1,±2…….}, 字母字符数据对象:C={‘A’,’B’,…’Z’} 学生成绩数据对象: Cj={(‘101’,‘jane’,80),
( ‘102’,‘jack’,90),(‘103’,‘jerry’,75 )}
5、逻辑结构
客观事物中数据元素之间的关系,与计算机无关
5
8
1
3
7
9
0
2
例2:计算机对弈 算法:对弈的规则和策略 模型:树
例3 田径赛的时间安排问题:
设有六个比赛项目,规定每个选手至多可参加三
个项目,有五人报名参加比赛(如下表所示)设计
比赛日程表,使得在尽可能短的时间内完成比赛。
姓名 丁一 马二 张三 李四 王五
项目 1 项目 2 跳高 跳 远 标 枪 铅球 标 抢 100 米 铅 球 200 米 跳 远 200 米
顺序存储结构示例:
数据结构:B=(K,R) 其中K={k1,k2,k3,k4,k5,k6,k7,k8,k9}
R={r} r={<k1,k2>,<k2,k3>,<k3,k4>,<k4,k5>,<k5,k6>,
<k6,k7>,<k7,k8>,<k8,k9>} 这是一个线性结构,它的顺序存储方式如图所示: