数据结构第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
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章 绪论

存储结构
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章 绪论

课程改革: 课程改革:
实验单独设课, 强调上机实践能力 数据结构课程: 理论课(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章 绪论

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

5.数据类型和抽象数据类型
数据类型(Data Type) 自20世纪70年代以来,几乎所有的高级程序设计语言都提供了这一 概念。在用高级语言编写的程序中间,程序中出现的每个变量,常量 或表达式,都必须事先说明它们所属的数据类型,每个类型都明显或 隐含的规定了在程序执行期间它的变量,它的表达式所允许取值的范 围,以及允许进行的操作,因此 所谓数据类型是一个值的集合以及在这些值上定义的一组操作的总称。 通常数据类型可以看作是程序设计语言中已实现的数据结构。 【例1.2】C语言的"整数类型"就定义了一个整数可取值的范围(其 最大值INT-MAX依赖于具体机器)以及对整数可施加的加、减、乘、 除和取模等操作。 按"值"是否可分解,可将数据类型划分为两类: ①原子类型:其值不可分解。通常是由语言直接提供。 【例】C语言的整型、字符型等标准类型及指针等简单的导出类型; ②结构类型:其值可分解为若干个成分(或称为分量)。是用户借助 于语言提供的描述机制自己定义的,它通常是由标准类型派生的,故 它也是一种导出类型。 【例】C的数组、结构等类型。
3.数据的四种基本存储方法
数据的存储结构可用以下四种基本存储方法得到: (1)顺序存储方法 该方法把逻辑上相邻的结点存储在物理位置上相邻 的存储单元里,结点间的逻辑关系由存储单元的邻接 关系来体现。 由此得到的存储表示称为顺序存储结构,通常借助 程序语言的数组描述。 该方法主要应用于线性的数据结构。非线性的数 据结构也可通过某种线性化的方法实现顺序存储。 (2)链接存储方法 该方法不要求逻辑上相邻的结点在物理位置上亦相 邻,结点间的逻辑关系由附加的指针字段表示。由此 得到的存储表示称为链式存储结构(Linked Storage Structure),通常借助于程序语言的指针类型描述。
数据结构第一章--绪论(严蔚敏版)

解 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章 绪论
1.1 引言
数据结构(Data Structure)—— 研究 绪论
1.2 数据结构的发展简史及其在计 算机科学中所处的地位
“数据结构”在计算机科学中是一门综合性的专业基础课。 一方面,面向各专门领域中特殊问题的数据结构得到研究和发 展,如多维图形数据结构等;另一方面,从抽象数据类型的观 点来讨论数据结构,已成为一种新的趋势,越来越被人们所重 视。
4.简单性
第1章 绪论
1.6实训项目一 验证哥德巴赫猜想
1.实训说明
验证哥德巴赫猜想,即任一充分大的偶数可以用两个素数之和 表示。 2.程序分析 (1)问题分析。 读入一个偶数num,将它分成p和q两部分,使得num=p+q。那 么怎样分呢?可以令p从2开始,每次增加1,而令q=num-p, 如果p、q均为素数,则正为所求,否则令p=p+1再试。
基本概念和术语
第1章 绪论
1.4 基本概念和术语
3.逻辑结构
结点和结点之间的逻辑关系称为数据的逻辑结构。 4.存储结构 数据及数据之间的关系在计算机中的存储表示称为数据的存 储结构。 5.数据处理 数据处理是指对数据进行查找、插入、删除、合并、排序、 统计以及简单计算等的操作过程。
第1章 绪论
1.4 基本概念和术语
第1章 绪论
1.6实训项目一 验证哥德巴赫猜想
(2)算法设计。
基本算法如下: 1)读入大于3的偶数num。 2)p=1 3)do{
4)p=p+1; q=num-p;
5)判断p是否素数? 6)判断q是否素数?
7)}while(p、q有一个不是素数)
8)输出num=p+q。
第1章 绪论
本章小结
本章主要介绍了如下一些基本概念: 数据结构、数据、结点、逻辑结构、存储结构、数据处理、 数据类型。 除上述基本概念以外,学生还应该了解算法是执行特定计算 的有穷过程,掌握算法描述的方法及如何评价一个算法。
6.数据结构(Data Structure) 数据结构是研究数据元素(Data Element)之间抽象化的相互 关系和这种关系在计算机中的存储表示(即所谓数据的逻辑结 构和物理结构),并对这种结构定义相适应的运算,设计出相 应的算法,而且确保经过这些运算后所得到的新结构仍然是原 来的结构类型。 7.数据类型 数据类型是指程序设计语言中各变量可取的数据种类。数据类 型是高级程序设计语言中的一个基本概念,它和数据结构的概 念密切相关。
第1章 绪论
1.4 基本概念和术语
8.算法 在计算机领域,一个算法实质上是针对所处理问题的需要,在 数据的逻辑结构和物理结构的基础上,施加的一种运算。
第1章 绪论
1.5 算法和算法的描述
1.5.1 算法
算法是执行特定计算的有穷过程。这个过程应有以下五个特点: (1)动态有穷 (2)确定性 (3)输入
(4)输出
(5)可行性
第1章 绪论
1.5 算法和算法的描述
1.5.2 算法的描述
1.预定义常量和类型 2.函数的形式 3.赋值语句 4.条件选择语句
5.循环语句
6.输入、输出语句 7.其他一些语句 8.注释形式 9.一些基本的函数
第1章 绪论
1.5 算法和算法的描述
1.5.3 算法评价
通常设计一个好的算法应考虑以下几个方面: 1.正确性 2.运行时间 3.占用的存储空间
第1章 绪论
1.3 什么是数据结构
数据结构是研究程序设计中计算机操作的对象以及它们之间 的关系和运算的一门学科。
第1章 绪论
1.4
1.数据
数据(data)是描述和量化客观事物和信息等的符号,在计 算机领域是指所有能输入计算机并能被计算机系统和程序 识别、存储、加工和处理的符号的总称。包括数字、字符、 图像和声音等。 2.结点 结点也叫数据元素,它是组成数据的基本单位。在程序中通 常把结点作为一个整体进行考虑和处理。