基本数据结构及其运算
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
A
B
C
A
A
B
F
B
C
D
DE
F
r1的图示
C
D
E
r2的图示
E
F
r3的图示 13
2.1 数据结构的基本概念
几种常用的数据结构(逻辑结构):
线性结构 ---- “一对一”的关系 树形结构 ---- “一对多”的关系 图状结构 ---- “多对多”的关系 集合结构 ---- 没有关系的关系
14
2.1 数据结构的基本概念
第二章 基本数据结构及其运算
目录
§2.1 数据结构的基本概念 §2.2 线性表及其顺序存储结构 §2.3 线性链表及其运算 §2.4 数组 §2.5 树与二叉树 §2.6 图
1
2.1 数据结构的基本概念
数据结构讨论的范畴
那些不能用数学函数、公式、方程等描述的非 数值性问题的求解。
解决这类问题的基本方法:
3
线性模型问题
书名索引表
一个结点
1 数据结构
0011
0035 ∧
2 C程序设计 3 BASIC语言 4 高等数学
0012 0125 ∧ 0200 ∧
0126 ∧
…
作者索引表 1 谭浩强 2 严蔚敏 3 樊映川 4 唐策善
…
0012
0125 ∧
0011 ∧ 0200 ∧ 0035 ∧
书库
登录号 书名 分类 作者 出版社 单价
数据的逻辑结构:
可以用一个二元组来描述: B=(D, R)
其中, D: 一个数据对象 D={di |i=1,2,…,n, n≥0}
R: D内数据元素之间存在的关系的集合 R={rj |j=1,2,…,m, m≥1} 关系rj---数据元素序偶的集合
逻辑结构面向问题,与计算机无关
11
2.1 数据结构的基本概念
B=(D, R)
D={ A, B, C, D, E, F}
R={ r1, r2, r3} r1={<A, B>, <A, C>, <B, D>, <B, E>, <C, F>} --行政隶属关系 r2={(A, B), (A, C), (A, D), (B, C), (C, F), (B, E)} --公路交通关系 r3={(A, B), (A, C), (E, F), (B, D), (C, F), (B, E)} --地理邻接关系
在数据模型中,我们往往不考虑数据元素的具体含 义,而抽象成一个结点。
数据元素的同义词是:结点、顶点、记录、元素
3. 数据项 (Data Item) :数据元素的分量
4. 数据对象 (Data Object):
同类型数据元素的集合,如一个系的全体学生等
9
2.1 数据结构的基本概念 5. 数据结构 (Data Structure)
序偶: 两个数据元素X和Y之间存在某种特定关系(如
图a所示)称为一个序偶,记为<X, Y>。
这里,X称为Y的直接前驱;Y称为X的直接后继。
如果这种关系是对称的,也就是说如果存在<X,Y>, 就必然有<Y,X>, 则记为(X,Y),图b表示。
<x, y>
X
Y
图a
(x, y)
X
Y
图b
12
举例:描述6个城市之间的关系
6
网状模型问题
地图着色问题
B F
A
C
D
E
A
B
E
C
F
D
7
网状模型问题
A
0# C
B
1#
D 2#
E
1#
3#
F
2#
A 0#
1# B
E
C 2#
3#
2# F
D 1#
8
2.1 数据结构的基本概念
1. 数据 (Data):
2. 数据元素 (Data Element) :
一个数据元素一般用来描述一个具体的实体,如一 个学生,一本书,春,夏,秋,冬等。
16
2.1 数据结构的基本概念
数据结构的图形表示:
春
夏
秋
冬
父亲
儿子
女儿
17
2.1 数据结构的基本概念
例2.6 用图形表示数据结构 B=(D,R),其中 D={di | 1≤i≤7}={d1 , d2 , d3 , d4 , d5 , d6 , d7 } R={(d1, d3 ), (d1, d7), ( d2 ,d4) , ( d3 ,d6) , ( d4 ,d5) }
① 建立问题的数学模型(如,线性模型、树状模型、 网状模型等) ② 按照数学模型设计解决问题的算法 ③ 根据算法编写程序,运行程序得到问题的解答
2
2.1 数据结构的基本概念 举例: 图书检索系统 ---- 线性模型问题 棋类对弈 -------- 树状模型问题 地图染色 -------- 网状模型问题
…
…… …
0200 高等数学 MA 樊映川 高教 18.00
…
…
…… …
4
树状模型问题
井字棋的博弈树
5
数据结构讨论的范畴
❖ 对于任何双人完备博弈,都可以用一个博 弈树来描述,并通过对博弈树的搜索策略 寻找最佳解。
❖ 博弈树上每个结点对应一个棋局,根代表 棋局的开始,叶子代表棋局的结束。
❖ 对国际象棋来说,博弈树有10102个结点。 围棋更复杂,有10768个结点。中国象棋有 10160个结点。
数据的存储结构: 将问题所涉及的数据对象中的所有数据
元素存入计算机,并且在计算机内部表达出 数据元素之间存在的关系。
常用的存储技术有:
顺序存储、链式存储、散列存储、索引存储
存储结构面向计算机
15
2.1 数据结构的基本概念
数据的运算集合: 对数据进行加工和处理的一组算法
既面向问题又面向计算机: 操作集合的定义由问题决定; 操作的实现与数据在计算机内的存储方式有关。
没有被一致公认的定义。具有三个层面的含义:
① 问题所涉及的数据对象,以及数据对象内部各个 数据元素之间的特定关系----数据的逻辑结构
② 全体数据元素以及数据元素之间的特定关系在计 算机内部的表达----数据的存储结构
③ 为解决问题而对数据施加的一组操作----数据的 运算集合
10
2.1 数据结构的基本概念
…
… …… …
0011 数据结构 CS 严蔚敏 清华 26.00
0012 C程序设计 CS 谭浩强 清华 25.00
…
…
…… …
0035 数据结构 CS 唐策善 科大 16.00
…
…
…… …
0125 BASIC语言 CS 谭浩强 清华 13.00
0126 C程序设计 CS 夏理宽 复旦 26.00
…
这个数据结构的图形表示如下所示
d1
d3
d7
d6
d2 d4 d5
18
2.1 数据结构的基本概念
线性结构: 非线性结构:
特例
A
B
C
DHale Waihona Puke Baidu
19
2.1 数据结构的基本概念
小结:
1. 数据 ( Data ) 2. 数据元素 ( Data Element ) 3. 数据项 ( Data Item ) 4. 数据对象 ( Data Object ) 5. 数据结构 ( Data Struct ure) 6. 数据类型 ( Data Type ) 7. 抽象数据类型 ( Abstract Data Type )