第一章_数据结构----绪论
《刘大有数据结构》 chapter 1 绪论

数据元素是组成数据的基本单位,在不同情况 数据元素是组成数据的基本单位, 是组成数据的基本单位 下,数据元素可以有元素、结点或者顶点等不 数据元素可以有元素、 同的名称。一个数据元素可以由若干个域(或 同的名称。一个数据元素可以由若干个域( 曰字段)组成。 曰字段)组成。
数据结构指的是数据之间的相互关系,它主要包含 数据结构指的是数据之间的相互关系, 指的是数据之间的相互关系 三部分内容: 三部分内容: (1)数据的逻辑结构,也就是数据元素之间的逻 )数据的逻辑结构, 辑关系。 辑关系。 (2)数据的存储结构,也就是数据元素及其相互 )数据的存储结构, 关系(逻辑结构)在存储器中的实现方式。 关系(逻辑结构)在存储器中的实现方式。 ( 3 ) 对数据需要施加的操作。 对数据需要施加的操作。 主要包括:查找、插入、删除、修改和排序等。 主要包括:查找、插入、删除、修改和排序等。
赋给变量Width的新值 无 将矩形的宽度值修改为新值 无 矩形宽度值被修改 无 无 计算矩形面积 返回矩形面积值 无 无 无 计算矩形周长 返回矩形周长值 无
1.3 算法概念和算法描述语言
让计算机完成解题任务,除了要选取适当的数 让计算机完成解题任务, 据结构外,还需要我们制定出解决问题的切实 据结构外, 可行的方法和步骤,这就是所谓的计算机算法. 可行的方法和步骤,这就是所谓的计算机算法 计算机算法
1.2 面向对象程序设计 面向对象程序设计OOP与抽象数据类型 与抽象数据类型 ADT
根据面向对象程序设计的思想, 根据面向对象程序设计的思想,可以将每 种数据结构都视为一个抽象类型,它定义数据 种数据结构都视为一个抽象类型, 的组织方式,且给出数据上的基本操作, 的组织方式,且给出数据上的基本操作,这种 结构称为抽象数据类型( 结构称为抽象数据类型(Abstract Data Type, 抽象数据类型 , 简称ADT). ) 简称
《数据结构教程》第一章 绪论

《数据结构教程》第一章绪论数据结构教程第一章绪论数据结构是计算机科学中的重要概念之一,它是计算机程序设计的基础。
本教程的第一章将介绍数据结构的基本概念和作用。
一、什么是数据结构?在计算机科学中,数据结构用于存储和组织数据,以便在计算机程序中进行高效的操作。
数据结构可以分为两种基本类型:线性数据结构和非线性数据结构。
1.1 线性数据结构线性数据结构是最简单的数据结构之一,它将数据元素按照线性顺序组织,可以使用一对一的关系连接数据元素。
常见的线性数据结构有数组、链表和栈。
1.2 非线性数据结构非线性数据结构是指数据元素之间存在多对多的关系,不是简单的一对一关系。
常见的非线性数据结构有树和图。
二、数据结构的作用数据结构的设计和选择对于程序的效率和性能具有重要影响。
合理选择数据结构可以提高算法的执行速度,降低计算机资源的占用。
2.1 提高数据的存储效率通过选择适当的数据结构可以减少内存的占用,提高数据的存储效率。
例如,链表数据结构可以动态地分配内存空间,减少内存的浪费。
2.2 提高数据的访问效率不同的数据结构在数据的访问效率上有所差异。
例如,对于需要频繁插入和删除操作的场景,链表数据结构比数组数据结构更加高效。
2.3 优化算法的执行速度数据结构和算法是相辅相成的,通过选择合适的数据结构可以优化算法的执行速度。
例如,在查找操作中使用二叉搜索树可以降低时间复杂度。
三、数据结构的分类根据数据结构的存储方式和操作特性,可以将数据结构分为线性数据结构和非线性数据结构。
3.1 线性数据结构线性数据结构是最常用的数据结构之一,它将数据元素按照线性顺序排列,每个元素有一个直接前驱和直接后继。
常见的线性数据结构有数组、链表和栈。
3.1.1 数组数组是一种最简单的数据结构,它将数据元素存储在连续的内存空间中。
数组的访问速度很快,但是插入和删除操作的效率较低。
3.1.2 链表链表是一种动态数据结构,它通过指针将数据元素链接在一起。
数据结构

第1章绪论1.1 什么是数据结构数据与数据之间的关系1.2 基本概念和术语1.基本定义(1).数据(Data) :是客观事物的符号表示。
在计算机科学中指的是所有能输入到计算机中并被计算机程序处理的符号的总称。
数据元素(Data Element) :是数据的基本单位,在程序中通常作为一个整体来进行考虑和处理。
(2)数据项(Data Item):一个数据元素可由若干个数据项组成。
数据项是数据的不可分割的最小单位。
数据项是对客观事物某一方面特性的数据描述。
数据对象(Data Object):是性质相同的数据元素的集合,是数据的一个子集。
2.举例如字符集合C={‘A’,‘B’,‘C’,…}--C表示字符对象;A ,B等表示数据元素;再如学生集合Students={“Zhangsan”, “Lisi”,…}Zhangsan(ID,name,age,grade,…)……--Students表示学生对象;“Zhangsan”、“Lisi”表示数据元素;Zhangsan的ID、name、age等表示数据项。
3.数据结构的形式定义数据结构的形式定义是一个二元组:Data-Structure=(D,S)其中:D是数据元素的有限集,S是D上关系的有限集4.逻辑结构与物理结构(1)数据元素之间的关系可以是元素之间代表某种含义的自然关系,也可以是为处理问题方便而人为定义的关系,这种自然或人为定义的“关系”称为数据元素之间的逻辑关系,相应的结构称为逻辑结构。
(2)数据结构在计算机中的表示(映像)称为数据的物理结构。
数据结构的存储方式1)顺序存储结构:用数据元素在存储器中的相对位置来表示数据元素之间的逻辑结构(关系)。
2)链式存储结构:在每一个数据元素中增加一个存放另一个元素地址的指针(pointer ),用该指针来表示数据元素之间的逻辑结构(关系)。
3)例:设有数据集合A={3.0,2.3,5.0,-8.5,11.0} ,两种不同的存储结构。
第1章 数据结构绪论

编译理论 数据表示法 存储装置 硬件(计算机系统设计)
算子关系 数据 数据的操作 类型 数据结构 文件系统 数据存取 数据组织 机器组织 信息检索 软件(计算机程序设计)
4
1.1 引
言
为了使读者对数据结构有一个感性的认识, 为了使读者对数据结构有一个感性的认识, 下面给出几个数据结构的示例, 下面给出几个数据结构的示例,读者可以 通过这些示例去理解数据结构的概念。 通过这些示例去理解数据结构的概念。 【示例1】 职工基本情况表。 参见教材P2 【示例2】 井字棋对弈问题。 【示例3】 教学计划编排问题。
9
1.3 抽象数据类型
首先我们了解一下在程序设 计语言中出现的各种数据类 型。
10
1.3.1 数据类型
数据类型是一个值的集合和定义在这个值集上 的一组操作的总称。 的一组操作的总称。 在高级程序设计语言中,数据类型可分为两类: 在高级程序设计语言中,数据类型可分为两类: 一类是原子类型,另一类则是结构类型。 一类是原子类型,另一类则是结构类型。 在某种意义上,数据结构可以看成是“ 在某种意义上,数据结构可以看成是“一组具 有相同结构的值” 有相同结构的值”,而数据类型则可被看成是 由一种数据结构和定义在其上的一组操作所组 成的。 成的。
6
1.2 基本概念与术语
1. 逻辑结构
(1) 线性结构。 (2) 集合结构。 (3) 树形结构。 (4) 图状结构。 数据的四种基本逻辑结构如图1.4所示。
7
1.2 基本概念与术语
2. 存储结构 (1) 顺序存储结构是指把逻辑上相邻的结 点存储在物理上相邻的存储单元里,结点 之间的逻辑关系由存储单元位置的邻接关 系来体现。 (2) 链式存储结构是把逻辑上相邻的结点 存储在物理上任意的存储单元里,结点之 间的逻辑关系由附加的指针域来体现。 (3) 索引存储结构是用结点的索引号来确 定结点的存储地址。
数据结构第1章 绪论

课程改革: 课程改革:
实验单独设课, 强调上机实践能力 数据结构课程: 理论课(68课时4学分)+实验课(24课时1.5 学分) 课程考核
1.3 基本概念和术语
1、 2、 3、 4、 5、 6、 数据 数据元素 数据对象 数据结构 数据类型 抽象数据类型
1. 数据 能输入到计算机中的符号集 数据: 合. 2. 数据元素 数据的基本单位. 数据元素: 3. 数据对象 数据对象: 具有相同性质的数据元素的集合. 4. 数据结构: DATA STRUCTURE 数据结构: 数据及其相互关 系的集合. 分为逻辑结构和存储结构(物理结 构). 数据结构-------------------------------类 数据结构----------------类 CLASS
数据的存储结构
1. 顺序存储结构 顺序存储结构:借助元素在存储器中的相对位置 来表示数据元素间的逻辑关系。 【例1.4】对于表1-1提出的学生信息登记表进行存储, 假定每个元素占用50个存储单元,数据从1000号单 元开始由低地址向高地址存放,对应的顺序存储结 构如表1-3所示。
数据的存储结构
顺序存储结构的主要特点: 可实现对各数据元素的随机访问。这是 因为只要知道存储的首地址以及每个数 据元素所占的存储单元,就可以计算出 各数据元素的存储地址。 不利于修改,在对数据元素进行插入、 删除运算时可能要移动一系列的数据元 素。
抽象数据类型的定义: 抽象数据类型的定义:
ADT: ADT:抽象数据类型名 data 数据元素之间逻辑关系定义 operation 操作1 操作1 操作2 操作2
……
操作n 操作n
抽象数据类型 的不同视图
1.4 1.4 算法和算法分析
1. 定义:算法(Algorithm)是对特定问题求 定义:算法(Algorithm) 解步骤的一种描述,它是指令的有限序列, 解步骤的一种描述,它是指令的有限序列,其 中每一条指令表示一个或多个操作。 中每一条指令表示一个或多个操作 特性: 2. 特性:
《数据结构》第一章重点知识梳理

第一章 绪论
求绝对值 abs(表达式) 求不足整数值 floor(表达式) 求进位整数值 ceil(表达式) 判定文件结束 eof(文件变量) (10)逻辑运算 与运算&&:对于A&&B,当A的值为0时,不在对B求值。 或运算||:对于A||B,当A的值为非0时,不在对B求值。 四、算法和算法分析 1.算法 (1)算法的定义
由于算法的时间复杂度考虑的只是对于问题规模n的增长率,因此在难以精确计算基本操作 执行次数(或语句频度)的情况下,只需求出它关于n的增长率或阶即可。 4.算法的存储空间需求
类似于算法的时间复杂度,以空间复杂度(spacecomplexity)作为算法所需存储空间的量 度,记作S(n)=O(f(n))其中n为问题的规模。
18
的表示。
①元素的表示。计算机数据元素用一个由若干位组合 起来形成的一个位串表示。
图1-1四类基本结构的关系图。
5
第一章 绪论
②关系的表示。 计算机中数据元素之间的关系有两种不同的表示方法:顺序映象和非顺序映象。 并由这两种不同的表示方法得到两种不同的存储结构:顺序存储结构和链式存储结构。 a.顺序映象的特点是借助元素在存储器中的相对位置来表示数据元素之间的逻辑关系。 b.非顺序映象的特点是借助指示元素存储地址的指针(pointer)表示数据元素之间的逻辑
数据元素(dataelement)是数据的基本单位,在计算机程序中通常作为一个整体进行考 虑和处理。
3
第一章 绪论
3.数据对象 数据对象(dataobject)是性质相同的数据元素的集合,是数据的一个子集。
4.数据结构 数据结构(datastructure)是相互之间存在一种或多种特定关系的数据元素的集合。 (1)数据结构的基本结构 根据数据元素之间关系的不同特性,通常有下列四类基本结构: ①集合。数据元素之间除了“同属于一个集合”的关系外,别无其它关系。 ②线性结构。数据元素之间存在一个对一个的关系。 ③树形结构。数据元素之间存在一个对多个的关系。 ④图状结构或网状结构。数据元素之间存在多个对多个的关系。
数据结构 第一章概论

注意:常用DataType表示抽象元素类型。
H
13
1.3 算法和算法分析
数据的运算是通过算法描述的。
1.算法----求解一个特定任务的指令的有限序列。
例.求a[0..n-1]中n个数的平均值(假定n>0)。
float average(float a[ ],int n)
{ int i;float s=0.0; //累加器赋初值
8. }
其中:f(m,n)=1+m+2*m*n+m=2mn+2m+1
当m=n时,f(n)=2n2+2n+1
T(n)=O(f(n))=O(2n2+2n+1)=O(n2) 平方阶。
对嵌套层次的循环结构,时间的复杂度T(n)由最内 层循环体语句的频度f(n)决定。
H
22
例4 分析下面的算法
1. void sum(int n)
其中:D1,D3是有穷集,D2是无穷集。
5.抽象数据对象
ElemSet={某种同类型的数据元素}
H
8
6.数据结构(data structure)----
数据之间的相互关系,即数据的组织形式。 内容包括:数据逻辑结构、数据存储结构和数据运算。
数据逻辑结构:数据元素之间的逻辑关系。 数据存储结构:数据元素及其关系在存储器中的存储表示。 数据运算:定义在数据逻辑结构上的操作。如:查询,插入,
(4)
for (k=0;k<n;k++)
n2(n+1)
(5)
c[i][j]=c[i][j]+a[i][k]*b[k][j]; n3
}
}
算法所消耗的时间就是所有语句频度之和T(n):
数据结构第一章--绪论(严蔚敏版)

解 T = (D, R ) D={A,B,a,b,c }
R是D上的关系的集合 是 上的关系的集合
A
B
a R={ P1,P2 } P1 ={<A,a>, <A,b>, <A,c>} P2 ={<B,a>, <B,b>, <B,c>}
b
c
写出一个复数的数据结构 例3 写出一个复数的数据结构 Complex= (C , R) 解 一个复数可以表示为 a+bi 一个复数可以表示为 复数 C={a,b}
也可以表示成一个有序对 <a, b>
∴这里存在一种关系 P ={<a,b>} (只有一个有序对 只有一个有序对) 只有一个有序对
而R是C上的关系的集合 R={ P } 是 上的关系的集合
写出一个复数的数据结构 例3 写出一个复数的数据结构 Complex= (C , R) 解 一个复数的数据结构为 Complex= (C , R) 其中, 其中, C={a,b} R={ P } P ={<a,b>}
a b c
解 其数据结构可描述为 d e T = (D, R ) D是数据元素的集合 D={a,b,c,d,e} 是数据元素的集合
R是D上的关系的集合 R={ P } 是 上的关系的集合
P ={<a,b>,<a,c>,<b,d>,<b,e>}
例2
一小组有a,b,c 三个学生,一个导师A 一小组有a,b,c 三个学生,一个导师A 和一个辅导员B 和一个辅导员B,此小组的数据结构如图:
48
ADT 抽象数据类型名 { 数据对象: 数据对象:〈数据对象的定义〉 数据关系: 数据关系:〈数据关系的定义〉 基本操作: 基本操作:〈基本操作的定义〉 } ADT 抽象数据类型名 其中基本操作的定义格式为: 基本操作名(参数表) 基本操作名 初始条件:〈初始条件描述〉 初始条件: 操作结果:〈操作结果描述〉 操作结果
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1-2-2 实例分析
例 1-4 复数关系的定义。 数据结构: Complex=(C,R)。 其中,C 是两个实数集合 {c1,c2};R 是定义在 C 上的一种关系,即 R={P}={<c1,c2>}。其 中,序偶< c1,c2>中的 c1 表示复数的实部,c2 表示复数的虚部。 例 1-5 事务管理程序中的课题小组信息的数据结构。假设 1 位老师带 1~3 名研究生,1 位研究生带 1~6 位学生,则数据结构 如下: Group=(P,R)。 其中,P={T,G1,…,Gn,S11,… Snm,1<=n<=3, 1<= m<=2} R={R1, R2} R1={<T, Gi>|1<=i<=n,1<=n<=3} R2={<Gi,Sij>|1<=i<=n, 1<=j<=m, 1<=n<=3, 1<=m<=2}
数学与软件科学学院信息与计算科学专业 2006-2007 年第 1 学期《数据结构》教案-详案-2004 级 6 班
课程导入
课程性质: 专业必修课 总学时数: 20*3=60 学时 上机学时: 18*2=36 学时 假设前提: 已有程序设计基础(C/C++基础,尤其是 C 语言程序设计基础) 学习目标: 培养数据抽象能力(Data Abstraction Ability) 。 注:C 程序设计 课则是培养结构化程序设计的能力。 具体涉及两个方面内容的学习和训练: 1) 学会分析研究计算机加工数据结构的特征,以便学会 针对不同的应用问 题,选择合适的逻辑结构、存储结构及相应的算法描述 。并做相应的 时间复杂 度和空间复杂度的分析。 2) 复杂程序设计方法的训练过程。学会将问题求解的程序设计成结构清楚、 正确、符合软件工程规范的系统。 学习方法: 勤奋练习,积极上机实践。( 熟悉各种数据结构的基本思想和算 法描述,并不断尝试结合教材内容和课外训练的数据抽象能力的培养) 教学步骤:整体上分为两个部分内容,一是数据结构的基本思想、方法与应 用技巧,二是上机实践。 具体内容: 第一章 绪论 第二、三、四、五、六、七章 基础(强调从 ADT 的角度进行描述的思想) 第八章 OS/Compiler 中的动态存储管理技术 (×) 第九、十章 查找/内排序 第十一章 外排序(×) 第十二章 文件结构(×) 注:由于学时数的限制,第八章、第十一章和第十二章暂时不做要求。其它 章节中,带**号的章节不做要求或不做考试要求。
作者:冯山
数学与软件科学学院信息与计算科学专业 2006-2007 年第 1 学期《数据结构》教案-详案-2004 级 6 班
(6) 数据元素之间关系的两种映射方法 顺序映射 ----顺序存储结构。 借助元素在存储器中存储的相对位置关系来表示数据元素 之间的逻辑关系。 非顺序映射 ----链式存储结构。 借助指示元素存储地址的指针来表示元素之间的逻辑关 系。 注:数据的逻辑结构与物理结构是紧密相关的。一般来将,任何一个算法的设计取决 于其数据的逻辑结构,而算法的实现取决于其数据的存储结构。 (7) 虚拟存储结构 ----存储结构的基于高级程序设计语言的描述方法 通过高级语言的数据类型来描述。 DS C 语言 OS Hardware 物理存储结构 虚拟存储结构 例如:一维数组用于描述顺序存储结构;指 针用于描述链式存储结构;struct, union 等用来表 示复杂问题的数据结构。 DS 中的虚拟存储结构在计算机系统中的层 次位置如图 1-3 所示。
课程材
《数据结构》 ,严蔚敏,吴伟民 编著,北京:清华大学出版社,2003 年 3 月
参考书目
(1) 《计算机算法:设计和分析引论》 ,[美] S 巴斯, 朱洪 等译,上海:复旦 大学出版社,1985 (2) 《Data Structures with C++》,[美] William Ford, William Topp, 北京:清华 大 学 出 版 社 , Printice-Hall International, inc. 1998 年 4 月 , ISBN 7-302-02413-8 (3) 《数据结构、算法与应用----C++语言描述》 ,[美] Sartaj Sahni 著,汪诗林,
作者:冯山
数学与软件科学学院信息与计算科学专业 2006-2007 年第 1 学期《数据结构》教案-详案-2004 级 6 班
结构就是其检索问题中的基本数据关系的数学模型 ( 此为 线性的结构关系模型 ) 。( 见教材 P1-2) 例 1-3 人机对弈问题。 其对弈策略、规则驱动、棋盘状态、前景预测方法等模型的建立,同时,棋盘状态描述 模型是对弈问题的关键性数据描述模型, 但棋局之间的关系往往不是线性的, 需要用非数值 型结构来描述。例如:#字游戏问题( 见教材 P2) 。需要用到所谓“树结构”来描述这些棋盘 状态之间转换过程。 例 1-4 多叉路口交通灯的管理问题( 在多叉路口需要设多少颜色的灯,使得车辆之间互 不碰撞,同时车流量最大) (见教材 P2-3) 对图的顶点作图的问题。 与此相关的还有如哥黎斯堡七桥问题、逻辑电路设计问题等,用传统的数学模型是无法 描述的。必须用新型的所谓“图结构” 进行描述。
1-1 什么是数据结构?
Data Structure (DS): Data---- (1) facts; (2) Information prepared for or stored by a computer; Structure---- way in which something is put together, organized, built, etc.
1-1-1 不同问题的数据结构模型构建实例分析
用计算机解决问题的步骤: 抽象其数学模型求解该模型的算法编制程序 测试或调 试 得解 (1) 对数值计算问题 例 1-1 求解梁架结构中应力的数学模型 ;预报人口增长的微分方程模型 。 其关键在于分析问题,提取或寻找对象之间的结构关系,然后用数学语言加以描述。 (2) 对无法用数学模型描述的非数值计算问题 其数学模型集中在数据结构的建立中。 例 1-2 图书馆书目检索系统自动化问题。 按书名的索引表、按作者名的索引表、按分类号的索引表、按登录号排列的书目表表示
1-2-3 其它概念与术语
(1) 逻辑结构 (Logical Structure)--- 描述数据元素之间的逻辑关系的结构。 (2) 物理结构 (Physical Structure)---- 描述数据元素在计算机中的实际存储映射关系的 结构,又称存储结构。 存储结构一般包含两个部分的内容 :一是数据元素的存储,二是数据元素之间关系的 存储。 (3) 容量单位问题 Byte, bit, KB, MB, GB, TB (4) 数据域 (Data Field)----当数据元素由若干个数据项组成时,各数据项位串被称为数 据域。 (5) 数据节点 (Node)----既数据元素。
1-2 数据结构中涉及的基本概念与术语 1-2-1 基本概念和术语
(1) Data----(facts/information)能被计算机处理的符号总称,是待加工的 “原料 ” 例如: 求解代数方程组时的 Data 为 integer/real 型的系数或根等; 编译器的 Data 为:程序代码或字符序列; 文字编辑器的 Data 为:字符、图形等。 (2) Data Element----对数据进行处理的基本单位 例如: 前述的棋盘之格局;图中的顶点等。 注:数据元素一般由若干数据项 (Data Item)组成。
习题及实验参考书
(1) 《数据结构实验教程》(C 语言版),王玲 主编,成都:四川大学出版社, 2003 年 7 月 (2) 《数据结构习题集》(C 语言版),严蔚敏,吴伟民 编著,北京:清华大 学出版社,2003 年 1 月
第一章 绪论
需要对程序的处理对象进行组织研究的两大主要原因: 一是 计算机领域的渗透早已使其应用不再局限于早期的科学计算领域 其加工处理对 象由纯粹的数值类发展到具有一定结构的数据类型 ,如字符、表、图形、图像、声音等, 使得程序设计活动面临了许多新的问题需要解决 。 二是 要编写出好的程序系统 ,人们发现,必须要对待处理对象的数据特性、各处理对象 之间的关系进行分析、组织 ,使编写出的程序能够有效地处理和解决它们。 它们构成了数据结构的研究动力和研究内容。
1-1-2 DS 课程的研究内容及课程历史
DS 研究内容: 研究非数值计算的程序设计问题中计算机的操作对象以及它们之间关系 和操作的一门学科课程。 DS 作为一门独立课程的发展历史: 1968 年,DS 与图论、表、树为“同义语” 。后来,扩充到了网络、集合代数、格、关系 等(它们又构成了“离散数学”的基础内容)。再后来,将大型数据库系统中的文件管理以及 内 存管理等技术也纳入了本课程中来。 《计算机程序设计艺术》(第一卷) ,Donald Knuth 1 (Turing 奖获得者)(开创 了最初的 DS 体系, 是第一本系统阐述数据的逻辑结构、 存储结构及其操作的著作) 目前,DS 是许多专业的选修或必修课。 DS 课程的地位(综合性非常强)( 见教材 P4 图 1.4):界于数学、计算机软件和 计算机硬件之间的核心课程。既是一般程序设计的基础,更是编译程序、OS、DBS 及其它大 型的系统程序和应用程序设计与实现的重要基础 。 发展方向: 1) 向各专门领域中的特殊问题之数据结构研究发展; 2) 从 ADT 观点来研究。
1
作者:冯山
数学与软件科学学院信息与计算科学专业 2006-2007 年第 1 学期《数据结构》教案-详案-2004 级 6 班
又如: 前述图书书目中的书卡数据 由作者姓名、书名、书号 等数据项 构成。 (3) Data Object----相同性质的数据元素之集合 例如: 整数数据对象即集合 N {0,1,2,...} ;字母字符对象即 C {' A' , ' B' ,...} ;计 算机信息与计算科学专业 2003 级学生对象即全体该班的学生集合等。 (4) Data Structure----相互之间存在某种特定关系的数据元素之集合 (从操作对象抽象出 来的数学模型 ) 注 1 :DS 中的数据元素不是孤立存在的; 注 2 :数据元素之间的关系即可称为“结构” ; 注 3 :数据元素之间的关系有 4 种基本结构: 集合(set)关系----无序的松散关系; 线性(linear)关系----一一对应关系(one-one); 树 (tree)关系 ----一对多关系 (one-many); 图 (graph)关系或者网(net)关系 ----多对多关系(many-many)。 (如教材 P5 图 1.5 所示) 注 4 : DS 的形式定义为: D_S=(D,S)。其中, D 为数据对象有限集合, S 为 D 上的关 系有限集合。 注 5 :一般而言, DS 要表达的是一组具 有相同结构的数据对象之值的集合。