数据结构第1章绪论

合集下载

罗文劼《数据结构与算法》第4版-第1章课后习题参考答案

罗文劼《数据结构与算法》第4版-第1章课后习题参考答案

第1章绪论1.选择题(1)C (2)B (3)C (4)D (5)B2.判断题(1)√(2)Ⅹ(3)Ⅹ(4)Ⅹ(5)√3.简答题(1)根据数据元素之间的不同逻辑关系,通常将其划分为哪几类结构?【解答】常见的四种逻辑结构有:①集合结构:数据元素间的关系是“属于同一个集合”。

②线性结构:数据元素之间存在着一对一的关系。

③树型结构:数据元素之间存在着一对多的关系。

④图型结构:数据元素之间存在着多对多的关系。

(2)请描述线性结构中数据元素与数据元素之间的关系特点?【解答】线性结构的特点是数据元素之间是一种线性关系,数据元素“一个接一个的排列”。

在线性结构中,有且仅有一个元素被称为“第一个”,除第一个元素之外其他元素均有唯一一个“前驱”;有且仅有一个元素被称为“最后一个”,除最后一个元素之外其他元素均有唯一一个“后继”。

(3)请描述树形结构中数据元素与数据元素之间的关系特点?【解答】树形存储结构,就是数据元素与元素之间存在着一对多关系的数据结构。

在树形存储结构中,树的根节点没有前驱结点,其余的每个节点有且只有一个前驱结点,除叶子结点没有后续节点外,其他节点的后续节点可以有一个或者多个。

(4)常用的存储结构有哪几种,各自的特点是什么?【解答】常见的四种存储结构有:①顺序存储:把逻辑上相邻的元素存储在物理位置相邻的存储单元中。

顺序存储结构是一种最基本的存储表示方法,通常借助于程序设计语言中的数组来实现。

②链接存储:对逻辑上相邻的元素不要求不要求物理位置相邻的存储单元,元素间的逻辑关系通过附设的指针域来表示。

③索引存储:通过建立索引表存储结点信息的方法,其中索引表一般存储结点关键字和一个地点信息,可通过该地址找到结点其它信息。

④散列存储:根据结点的关键字直接计算出该结点的存储地址的方法。

(5)简述算法和程序的区别。

【解答】一个算法若用程序设计语言来描述,则它就是一个程序。

算法的含义与程序十分相似,但又有区别。

一个程序不一定满足有穷性。

精品课件-数据结构教程(胡元义)-第1章

精品课件-数据结构教程(胡元义)-第1章
(4) 哈希(或散列)存储结构:此方法的基本思想是根据 数据元素的关键字通过哈希(或散列)函数直接计算出该数据元 素的存储地址。
第1章 绪论
顺序存储结构的主要优点是节省存储空间,即分配给数据 的存储单元全部用于存放数据元素的数据信息,数据元素之间 的逻辑关系没有占用额外的存储空间。采用这种存储结构可以 实现对数据元素的随机存取,即每个数据元素对应有一个序号, 并由该序号可以直接计算出数据元素的存储地址(例如对于数 组A其序号为数组元素的下标,数组元素A[i]可以通过*(A+i) 进行存取)。但顺序存储结构的主要缺点是不便于修改,对数 据元素进行插入、删除运算时,可能要移动一系列的数据元素。
第1章 绪论
(1) 分析阶段:分析实际问题,从中抽象出一个数学模 型。
(2) 设计阶段:设计出解决数学模型的算法。 (3) 编程阶段:用适当的编程语言编写出可执行的程序。 (4) 测试阶段:测试、修改直到得到问题的解答。 数据结构课程集中讨论软件开发过程中的设计阶段,同时 涉及分析阶段和编程阶段的若干基本问题。此外,为了构造出 好的数据结构及其实现,还需考虑数据结构及其实现的评价与 选择。因此,数据结构课程的内容包括了如表1.1所示的数据 表示和数据处理方面所对应的3个层次。
第1章 绪论
1.2.2 存储结构 数据的存储结构是数据结构在计算机中的表示方法,也即
数据的逻辑结构到计算机存储器的映像,包括数据结构中数据 元素的表示以及数据元素之间关系的表示。数据元素及数据元 素之间的关系在计算机中可以有以下四种基本存储结构:
(1) 顺序存储结构:借助于数据元素在存储器中的相对 位置来表示数据元素之间的逻辑关系。通常顺序存储结构是利 用程序语言中的数组来描述的。
第1章 绪论

数据结构 第一章 绪论

数据结构 第一章 绪论

理。
第一章
绪论
学习要点
了解数据结构有关概念的含义,特别是数据 的逻辑结构,数据的存储结构之间的关系;
1
2 熟悉类C语言的书写规范,特别要注意值调用 和引用调用的区别及出错处理方式; 3 了解算法时间复杂度的计算方法;
本章的主要内容:
1.1 1.2 1.3 1.4
什么是数据结构: 基本概念和术语 抽象数据类型的表示与实现 算法与算法分析 补充 类C语言简要说明
2)熟练掌握一门程序设计语言。
3) 熟知应用领域的相关知识。
其后两个条件比较容易实现,而第一个条件则需 要花相当的时间和精力才行。这也是区分一个程序设 计人员水平高低的一个重要标志。因此,我们学习数 据结构的目的,就是为了更好地进行程序设计。
1.1 什么是数据结构
数据结构课程就是要对不同的数据对象(Data object) 进行探索。对每种数据对象,首先考虑要执行的操作,然 后考虑表示这种数据对象的方法,以使这些操作有效地实 现(算法 Algorithm)。 学习数据结构,要掌握两种技术: 1)善于设计种种可供选择的数据表示形式(Data Structure)。 2)对相应的Data Structure设计出完成各种操作的 算法。 2.什么是数据结构?
数据结构是一门研究非数值计算的程序设计问题中计 算机的操作对象以及它们之间的关系和操作等等的学科。
本课程主要讨论以下三种数据结构:
1.1 什么是数据结构
1.1 什么是数据结构
Tt
a
b
c
a1
a2
b1
b2
c1
c2
d
d1
d2
d3
图 1-2
树形结构示意图
1.1 什么是数据结构

大学《数据结构教程》(第5版) 李春葆 清华大学出版社课件第1章 绪论

大学《数据结构教程》(第5版)   李春葆     清华大学出版社课件第1章 绪论

存储结构
3)索引存储结构 P8 4)哈希(或散列)存储结构 P8
数据运算
数据的运算主要有修改、插入、删 除、查找、排序。
1.1.3 数据结构课程的内容
数据结构的内容可归纳为三个部分:逻辑 结构、存储结构和数据运算。
1.2 数据类型和抽象数据类型 1.2.1 数据类型 1.2.2 抽象数据类型
1.1.1 数据结构的研究内容
数据结构主要研究非数值计算问题。 (多种复杂的具有一定结构关系的数 据)
非数值计算问题:
例1-1 电话号码查询问题: 电话号码薄(a1,b1)(a2,b2)…..(an,bn) 其中:ai为某人姓名,bi为该人的电话号码; 要求:设计一个算法,给定一个姓名时能查出 此人的电话号码?
例如,若T(n)=n(n+1)/2,则有 T(n)/n2=1/2+1/n, 当n∞时,T(n)/n2=1/2故它的时间复杂度为O (n2), 即T(n)与n2 数量级相同。
显然,被称做问题的基本操作的原操作应是其 重复执行次数与算法的执行时间成正比的原 操作;
多数情况下,它就是最深层循环内的语句中 的原操作,它的执行次数和包含它的语句频 度相同。
语句的频度指的是该语句的重复执行的次数
一般情况下,对一个问题(或一类算法)只需选 择一种基本操作来讨论算法的时间复杂度即 可
【例1-7】
++x; s=0;
时间复杂度为O(1)。
没有循环语句,其基本运算次数与问题规 模无关,称为常数阶,记作O(1)。
【例1-8】
for(i =1;i<=n;++i) {
• 数据元素(Data Element):是数据的基本单位。
• 数据项(Data Item): 是组成数据元素的、有独立含 义、不可分割的最小单位。

数据结构

数据结构

第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章 绪论

数据结构第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. 特性:

数据结构(C语言版)第1章 绪论

数据结构(Data Structures) 数据结构
(C语言版 语言版) 语言版
主讲教师: 吴让仲 主讲教师:
Instructor: WU, RANGZHONG E-mail: wurangzhong@
1/68
教材 (Text Book) 数据结构(C语言版 数据结构 语言版) 语言版
17/68
逻辑结构的分类
数据的逻辑结构是本质,可以分为: 数据的逻辑结构是本质,可以分为: 线性结构和 线性结构和非线性结构 也可以分为 集合 结构中的数据元素除了同属于一种类型外,别无 结构中的数据元素除了同属于一种类型外, 其它关系. 其它关系. 线性结构 结构中的数据元素之间存在一对一的关系. 结构中的数据元素之间存在一对一的关系. 树型结构 结构中的数据元素之间存在一对多的关系. 结构中的数据元素之间存在一对多的关系. 图状结构或网状结构 结构中的数据元素之间存在多对 多的关系. 多的关系.
数据结构发展简史
作为独立课程国外1968年开始设立. 作为独立课程国外1968年开始设立. 1968年开始设立 1968年美国KNUTH教授开创了数据结构的最初 1968年美国KNUTH教授开创了数据结构的最初 年美国KNUTH 体系. 体系. 计算机专业的专业基础课. 计算机专业的专业基础课. 非计算机专业的主要选修课. 非计算机专业的主要选修课.
25/68
数据结构课程的内容
数据结构是介于数学,计算机硬件和计算机软 数据结构是介于数学,计算机硬件和 数学 件之间的一门计算机科学与技术专业的核心课 是编译原理,操作系统,数据库, 程,是编译原理,操作系统,数据库,人工智 能等课程的基础.同时,数据结构技术也广泛 能等课程的基础.同时, 应用于信息科学,系统工程, 应用于信息科学,系统工程,应用数学以及各 信息科学 种工程技术领域. 种工程技术领域. 数据结构课程的先修课程有高级语言程序设计 和离散数学. 和离散数学

第1章 数据结构C语言描述(耿国华)


第 1章 绪 论
4. 数据结构(Data Structure) 数据结构( ) 数据结构是指相互之间存在一种或多种特定关系的数据元 素集合
学校


研究机构
教研室
实验室
学校组织层次结构图
第 1章 绪 论
5. 数据类型 数据类型(Data Type) 数据类型是一组性质相同的值集合以及定义在这个值集 合上的一组操作的总称。数据类型中定义了两个集合,即该 类型的取值范围,以及该类型中可允许使用的一组运算。例 如高级语言中的数据类型就是已经实现的数据结构的实例。 从这个意义上讲,数据类型是高级语言中允许的变量种类, 是程序语言中已经实现的数据结构(即程序中允许出现的数 据形式)。在高级语言中,整型类型可能的取值范围是-32 768~+32 767, 可用的运算符集合为加、 减、 乘、 除、 乘方、 取模(如C语言中+, -, *, /, %)。
第 1章 绪 论
2) 可读性 ) 3) 健壮性 ) 4) 高效率和低存储要求 )
第 1章 绪 论
算法描述的工具
1. 算法、 语言和程序的关系 算法、 语言和程序的关系 (1) 算法: 描述了数据对象的元素之间的关系(包括数 据逻辑关系、 存储关系描述)。 (2) 描述算法的工具:算法可用自然语言、框图或高级 程序设计语言进行描述。 自然语言简单但易于产生二义, 框图直观但不擅长表达数据的组织结构, 而高级程序语言 则较为准确但又比较严谨。 (3) 程序是算法在计算机中的实现(与所用计算机及所 用语言有关)。
第 1章 绪 论

3. 算法设计的要求 1) 算法的正确性 (1) 所设计的程序没有语法错误; (2) 所设计的程序对于几组输入数据能够得出满足要求的 结果; (3) 所设计的程序对于精心选择的典型、 苛刻而带有刁难 性的几组输入数据能够得到满足要求的结果。 (4) 程序对于一切合法的输入数据都能产生满足要求的结 果。

数据结构第一章--绪论(严蔚敏版)


解 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 抽象数据类型名 其中基本操作的定义格式为: 基本操作名(参数表) 基本操作名 初始条件:〈初始条件描述〉 初始条件: 操作结果:〈操作结果描述〉 操作结果

数据结构(C语言版) 第1章 绪论

数据结构
理论课教材: 数据结构(C语言版) 严蔚敏 吴伟民 编著
第一章 绪论
1.0 1.1 1.2 1.3 1.4 学习数据结构的主要意义和要求 数据结构讨论的范畴 基本概念 抽象数据类型的表示和实现 算法和算法的度量
学习数据结构的主要意义和要求
意义:

数据结构和算法是计算机学科的两大支柱 数据结构是程序设计的基础 程序=算法+数据结构
存储结构分为: 顺序存储结构——借助元素在存储器中的相对位置来表示 数据元素间的逻辑关系 链式存储结构——借助指示元素存储地址的指针表示数据 元素间的逻辑关系 数据的逻辑结构与存储结构密切相关 逻辑结构
线性表
物理结构
顺序存储结构


链式存储结构
复合存储结构
h
h
元素1 1400
1345 元素2
链式存储
数据结构的形式定义为: 数据结构是一个二元组 Data_Structures = (D, S) 其中: D 是数据元素的有限集, S 是 D上关系的有限集。
数据元素的映象方法: 例用二进制位(bit)的位串表示数据元素
(321)10 = (501)8 = (101000001)2 A = (101)8 = (001000001)2
算法设计的要求
2. 可读性 算法主要是为了人的阅读与交流,其次才是为计算机执行,因此算法 应该易于人的理解;另一方面,晦涩难读的程序易于隐藏较多错误而难以 调试。 3.健壮性 当输入的数据非法时,算法应当恰当地作出反映或进行相应处理,而
1536
元素3
1346
元素4

存储地址 1345 1346
存储内容 元素1 元素4
指针 1400 ∧
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

张3优胜
李4参与
丁1优胜
张3参与
李4优胜
王2优胜
英语
歌曲
11
例1-2 表
例1–2 到医院看病的病人需要排队,而医院实行先来先服务 的原则。每个病人都有自己的病历,病历上有病历的编号 还有病人的其他具体信息。如表1.2所示。 表1.2 病人信息表
编号
172 091 ------姓 名 性 别 女 男 ------年 龄 30 20 -------------------------------
张立 田方
-------
这张表中的元素存在一个顺序关系,即谁在谁前,谁在谁 后的信息(即病人诊断顺序依次为张立,田方,……) 。 所以,可以用线性结构来刻画这种关系。
12
例1-3 大学系级行政机构
大学系级行政机构,如图1.2所示:

办公室
教研室
班级
管理员
教 师
实验员
学 生
其中系、办公室、……教师、学生可视为数据元素。元 素之间呈现的是一种层次关系,即系级下层机构为办公室、 教研室和班级,而办公室、教研室和班级等单位又由若干个 管理人员、教师、实验员和学生组成。
7
数据的逻辑结构(续)
例如表1.1的图书管理表,其中 a1,……,an对应的每一 行各是一个数据元素,而编号、书名等就是数据项。在计 算机存取数据时,数据项是不可分割的最小存取单位。 表1.1 图书管理表
编号 书 名 数据库 数据结构 作 者 周志逵
夏克俭 王绍斌
出版社 科教 国防工业
出版日期 1998.7 2007.2
20
数据的操作
(2)插入:在数据结构中添加新的数据元素。 (3)删除:删去数据结构中指定的数据元素。 (4)更新:改变数据结构中某个数据元素一个或多个数据项 的值。 (5)排序:重新安排数据元素之间的逻辑顺序,使之按(某 个数据项的)值由小(大)到大(小)的次序排列。 其中,查找是一种引用型操作,即它不改变现有结构,而其 余四种均会改变现有结构,被称为加工型操作。 综上所述,数据结构是一门研究非数值计算的程序设计 中计算机操作的对象以及它们之间关系和操作的学科。在本 书中,对数据结构的详细讨论,都是从数据的逻辑结构、数 据的存储结构和对数据的操作这三方面展开的,读者应掌握 住这个规律,以便以后知识的学习。
21
1.1.3 研究数据结构的方法
研究数据结构是为了编写解决问题(或完成任务)的程 序。用计算机求解一个实际问题的过程,一般可以用图1.8 所示的模型加以描述。
现实问 题 数学模 型 算法 程序 解
图1.8 计算机求解问题的流程 即首先要从现实问题出发,抽象出一个适当的数学模型, 然后设计一个求解此数学模型的算法,最后根据这个算法编 出程序,经过测试、排错、运行直至得到最终的解答。(现 实)问题、数学模型、算法和程序是问题求解过程中出现的 四个不同的概念。
数 据 结 构 课程
教材:数据结构(国防工业出版社)
学时:讲课42(学时) 上机12(学时) 教师:夏克俭
1
课程目录
第一章:绪论(2学时) 第二章:线性表(4学时) 第三章:栈和队列(5学时) 第四章:字符串(自学) 第五章:数组和广义表(4 学时) 第六章:树(8学时) 第七章:图(8学时) 第八章:查找(6学时)
他关系(如例1–1)。
(2)线性结构 数据元素之间存在一对一的关系(如例1–2)。 (3)层次结构 数据元素之间存在一对多的关系(如例1–3)。 (4)网状结构 数据元素之间存在若干个多对多关系(如例1–4)。
10
例1-1 集合
例1–1 学校举办了英语演讲比赛和歌曲演唱比赛,参赛者可 以获得优胜奖和参与奖。问多少学生在两个竞赛中都获得了 优胜奖?求解这个问题可以将在两个竞赛中获得优秀奖的人 分别构成一个整体,问题便成了求两个集合的交集。
5
数据结构的含义
因此可以认为,数据结构是介于数学、计算机硬件和计 算机软件三者之间的一门核心课程,如图1.1:
数学
代数系统
编码理论 数据表示法 存储装置
数据类型
算子关系 文件系统 数据组织 信息检索
数据的操作
数据结构
数据存取
软件
(计算机程序 设计)
硬件
机器组织
(计算机系统 设计)
图1.1 “数据结构”所处的地位
4
1.1 数据结构研究的内容和方法
1.1.1 数据结构的含义 数据结构(Data Structure)简称DS,研究的是 计算机所处理数据元素间的关系及其操作实现的算 法。包括数据的逻辑结构、数据的存储结构以及数 据的操作。 数据结构在计算机科学中涉及到计算机硬件 (特别是编码理论、存储机制等)、计算机软件的 研究(无论是编译程序还是操作系统,都涉及到数据 元素在存储器中的分配问题)。
a1 a2 an
^
链式结构是本课程的一个重点,因为元素之间的关系在 计算机内部很大程度上是通过地址或指针来建立的。 (3)索引存储(Indexed Storage):在存储数据的同时,建 立一个附加的索引表,即索引存储结构=数据文件+索引表。
18
数据的存储结构(续)
例1-5 电话号码查询问题。
为便于提高查询的速度,在存储用户数据文件的同时,建立一张姓氏索 引表,如图1.7所示。这样,查找一个电话就可以先查找索引表,再查 找相应的数据文件,无疑加快了查询的速度。
9
数据的逻辑结构(续)
具有相同性质的数据元素组成的集合,称为数据对象 (Data Object),它是数据的一个子集。 计算机要处理的数据元素不是相互孤立的,而是有着各 种各样的联系,这种数据元素之间的关系就称作逻辑结构。 根据数据元素之间关系的不同特性,归纳出四类基本的逻辑 结构: (1)集合 结构中的数据元素除了“属于同一集合”的关系外,没有其
14
例1-4(续)
此问题可归纳为图的“染色“问题:设项目A∽F各表示 一数据元素,以○表示。若两个项目不能同时举行,则将其 连线。由此得到如图1.3所示的结构。若用四种颜色表示四 个时间段,一种着色方案如图所示。 A B F E
D
图1.3 即:红色时间段(如8~10点)—A、C项目;浅蓝— B、D项目;深蓝— E 项目; 紫色—F项目。
6
1.1.2 数据结构研究的内容
1. 数据的逻辑结构(Logical Structure) 指数据元素之间的逻辑关系。 • 数据(Data),客观事物的符号表示。是指输入到 计算机并能被计算机程序处理的符号的总称。如方 程中的整数、实数,源程序中的字符串,以及文字、 图像和声音信号等等,都可作为计算机中的数据。 • 数据元素(Data Element),数据的基本单位。简 单的数据元素可以是整数、字符等形式。一般,数 据元素由若干个数据项(Data Item)组成,常称为 记录(Record)。
… … …
… … …
a1
a2
. .
001 002
… …
…… ……
…… ……
…… ……
…… ……
… …
… …
8
an
数据的逻辑结构(续)
上表(List)中每一行为一个数据元素(或记录),记为 ai(1≤i≤n),元素之间呈现的是一种线性关系。此表可表示为: list = (a1,a2,……,an) 显然表中每一数据元素包含的许多值是非数值性的(如文 字、日期等数据),对其进行的操作(或运算)也不再是加、 减、乘、除等数学运算,而是诸如: 查询(查找一本书的信息)、 插入(增加一本书的信息)、 修改(某书修订后,修改元素中某些信息)、 删除(某书不再版了,做删除标记)、 分类(按某数据项的值建立索引) 等这样的运算。
3
绪论(续)
• 随着计算机应用的广泛深入,计算机应用领域会 越来越广,计算机要处理的数据更加多样化,而数 据之间的关系和对数据处理的要求也更为复杂。这 就要求我们在从事具体的计算机应用时,要用较科 学的方式描述、存储和处理数据,从而使计算机高 效率地去完成预期的任务。

本章主要讨论数据结构、算法及算法分析方面的 一些基本概念。
22
研究数据结构的方法
1)问题(Problem) 要完成的任务。例如,在例1–1和例1–2中描述的都是一 个问题。在问题的定义中不应包含有关怎样解决问题的限制。 只有在问题被准确定义并完全理解后才有可能研究问题的解 决方法。然而在问题的定义中应该包含对所有解决方案所需 要的资源(比如说,计算机的主存储器和磁盘空间以及运行 时间)的限制。 2)数学模型(Mathematical Model) 指用数学的方法精确地把问题描述成为函数。而函数 (Function),是输入(即定义域)和输出(即值域)之间 的一种映射关系。函数的输入是一个值或一些信息,这些值 组成的输入称为函数的参数。不同的输入可以产生不同的输 出,但对于给定的输入,每次计算函数时得到的输出必须相 同。 23
姓 氏 地址 姓 名 丁 一 …… 王 二 …… …… 张 三 …… 电 话
62331234 …… 62345678 …… 63450987 ……

王 张 ……
索引表
数据文件
19
数据的存储结构(续)
(4)散列存储(Hash Structure): 根据数据元素的特殊字段 (称为关键字key),计算数据元素的存放地址,然后数据元素 按地址存放,所得到的存储结构为散列存储结构(或Hash结 构)。 3. 数据的操作 一般而言,必须对数据进行加工处理,才能得到问题的 解。在非数值性问题中,对数据的操作(或运算)已不限于 对数据进行加、减、乘、除等数学运算。数据的操作是定义 在逻辑结构上的,而操作的具体实现是在存储结构上进行的。 基本的数据操作主要有以下几种: (1)查找:在数据结构中寻找满足某个特定条件的数据元 素的位置或值。
第九章:排序(5学时)
相关文档
最新文档