数据结构(严蔚敏)完整第7章ppt课件
数据结构C语言版(第2版)严蔚敏人民邮电出版社课后习题答案
数据结构(C语言版)(第2版)
课后习题答案
李冬梅 2015.3II
目录
第 1 章 绪论 ................................................................ 1
第 2 章 线性表 .............................................................. 5
第 3 章 栈和队列 ............................................................ 13
第 4 章 串、数组和广义表 .................................................... 26
第 5 章 树和二叉树 .......................................................... 33
第 6 章 图 ................................................................. 43
第 7 章 查找 ................................................................ 54
第 8 章 排序 ............................................................... 651 第1章绪论
1 •简述下列概念:数据、数据元素、数据项、数据对象、数据结构、逻辑结构、存储结 构、抽象数据类型。
答案:
数据:是客观事物的符号表示,指所有能输入到计算机中并被计算机程序处理的符号的 总称。如数学计算中用到的整数和实数,文本编辑所用到的字符串,多媒体程序处理的图形、 图像、声音、动画等通过特殊编码定义后的数据。
《数据结构(C语言版 第2版)》(严蔚敏 著)第七章练习题答案
《数据结构(C语言版第2版)》(严蔚敏著)
第七章练习题答案
第7章查找
1.选择题
(1)对n个元素的表做顺序查找时,若查找每个元素的概率相同,则平均查找长度为()。A.(n-1)/2B.n/2C.(n+1)/2D.n
答案:C
解释:总查找次数N=1+2+3+…+n=n(n+1)/2,则平均查找长度为N/n=(n+1)/2。
(2)适用于折半查找的表的存储方式及元素排列要求为()。A.链接方式存储,元素无序B.链接方式存储,元素有序
C.顺序方式存储,元素无序D.顺序方式存储,元素有序
答案:D
解释:折半查找要求线性表必须采用顺序存储结构,而且表中元素按关键字有序排列。
(3)如果要求一个线性表既能较快的查找,又能适应动态变化的要求,最好采用()查找
法。A.顺序查找B.折半查找
C.分块查找D.哈希查找
答案:C
解释:分块查找的优点是:在表中插入和删除数据元素时,只要找到该元素对应的块,就
可以在该块内进行插入和删除运算。由于块内是无序的,故插入和删除比较容易,无需进行大量
移动。如果线性表既要快速查找又经常动态变化,则可采用分块查找。
(4)折半查找有序表(4,6,10,12,20,30,50,70,88,100)。若查找表中元素58,
则它将依次与表中()比较大小,查找结果是失败。A.20,70,30,50B.30,88,70,50
C.20,50D.30,88,50
答案:A
解释:表中共10个元素,第一次取(1+10)/2=5,与第五个元素20比较,58大于20,再
取(6+10)/2=8,与第八个元素70比较,依次类推再与30、50比较,最终查找失败。
(5)对22个记录的有序表作折半查找,当查找失败时,至少需要比较()次关键字。A.3B.4C.5D.6
答案:B
解释:22个记录的有序表,其折半查找的判定树深度为log222+1=5,且该判定树不是
满二叉树,即查找失败时至多比较5次,至少比较4次。
(6)折半搜索与二叉排序树的时间性能()。A.相同B.完全不同
数据结构教案
数据结构教案(总32页)
-CAL-FENGHAI.-(YICAI)-Company One1
-CAL-本页仅作为文档封面,使用请直接删除
2015 至2016 学年第二学期
数 据 结 构 课程
教
案
课程编码: 1261D03
总学时/周学时: 80 / 5
开课时间: 2016年2 月 24日第 1 周至第 16
周
授课年级、专业、班级: 15级网工程2班
使用教材 严蔚敏. 数据结构(C语言版)[M] 北京:清华大学出版社,2011.
系别/教研室: 信息工程学院 / 物联网工程
授课教师: 刘波 教学目标:
《数据结构》是物联网工程专业的一门专业必修课。用计算机解决任何问题都需要进行数据表示和数据处理,而数据表示和数据处理正是《数据结构》要研究的内容。主要介绍如何合理地组织数据、有效地存储和处理数据,正确地设计算法以及对算法的分析和评价。
通过本课程教学,使学生了解数据结构的基本概念,理解数据结构的逻辑结构和物理结构的基本概念以及有关算法,掌握算法描述及算法的评价标准,熟悉在不同存储结构上实现不同的运算,并对算法设计的方式和技巧有所体会,旨在培养学生基本的、良好的程序设计技能,编制高效可靠的程序,并为学生日后学习操作系统和数据库等后续课程奠定基础。
教学要求:
本课程主要是以抽象数据类型的观点来组织和讲解线性表、栈、队列、树、二叉树、图等各种主要的数学模型并定义为相应的抽象数据类型,给出各种物理表示法和有关算法,关于数据处理技术介绍几种主要的排序和查找算法。
学生通过学习该课程后主要应掌握以下内容:
1.了解数据结构及有关的基本概念;
严蔚敏版数据结构课后习题答案-完整版
精品文档
---------------------------------------------------- 第1章 绪论
1.1 简述下列术语:数据,数据元素、数据对象、数据结构、存储结构、数据类型和抽象数据类型。
解:数据是对客观事物的符号表示。在计算机科学中是指所有能输入到计算机中并被计算机程序处理的符号的总称。
数据元素是数据的基本单位,在计算机程序中通常作为一个整体进行考虑和处理。
数据对象是性质相同的数据元素的集合,是数据的一个子集。
数据结构是相互之间存在一种或多种特定关系的数据元素的集合。
存储结构是数据结构在计算机中的表示。
数据类型是一个值的集合和定义在这个值集上的一组操作的总称。
抽象数据类型是指一个数学模型以及定义在该模型上的一组操作。是对一般数据类型的扩展。
1.2 试描述数据结构和抽象数据类型的概念与程序设计语言中数据类型概念的区别。
解:抽象数据类型包含一般数据类型的概念,但含义比一般数据类型更广、更抽象。一般数据类型由具体语言系统内部定义,直接提供给编程者定义用户数据,因此称它们为预定义数据类型。抽象数据精品文档
---------------------------------------------------- 类型通常由编程者定义,包括定义它所使用的数据和在这些数据上所进行的操作。在定义抽象数据类型中的数据部分和操作部分时,要求只定义到数据的逻辑结构和操作说明,不考虑数据的存储结构和操作的具体实现,这样抽象层次更高,更能为其他用户提供良好的使用接口。
1.3 设有数据结构(D,R),其中
4,3,2,1ddddD,rR,4,3,3,2,2,1ddddddr
试按图论中图的画法惯例画出其逻辑结构图。
解:
1.4 试仿照三元组的抽象数据类型分别写出抽象数据类型复数和有理数的定义(有理数是其分子、分母均为自然数且分母不为零的分数)。
数据结构 (严蔚敏C语言版) 学习、复习提纲
期末复习
第一章 绪论 复习
1、计算机算法必须具备输入、输出、可行性、确定性、有穷性5个特性。
2、算法分析的两个主要方面是空间复杂度和时间复杂度。
3、数据元素是数据的基本单位。
4、数据项是数据的最小单位。
5、数据结构是带结构的数据元素的集合。
6、数据的存储结构包括顺序、链接、散列和索引四种基本类型。 基础知识 数据结构
算 法 概 念
逻辑结构
存储结构
数据运算 数据:计算机处理的信息总称
数据项:最小单位
数据元素:最基本单位
数据对象:元素集合
数据结构:相互之间存在一种或多种特定关系的数据元素集合。
概念:数据元素之间的关系
线性结构:一对一
非线性结构
树:一对多
图:多对多
顺序存储结构
链表存储结构
索引。。。
散列。。。
算法描述:指令的有限有序序列
算法特性 有穷性
确定性
可行性
输入
输出
算法分析 时间复杂度
空间复杂度 第二章 线性表 复习
1、在双链表中,每个结点有两个指针域,包括一个指向前驱结点的指针 、一个指向后继结点的指针
2、线性表采用顺序存储,必须占用一片连续的存储单元
3、线性表采用链式存储,便于进行插入和删除操作
4、线性表采用顺序存储和链式存储优缺点比较。
5、简单算法
第三章 栈和队列 复习 线性表 顺序存储结构
链表存储结构 概 念 基本特点
基本运算 定义
逻辑关系:前趋 后继
节省空间
随机存取
插、删效率低
插入
删除
单链表
双向
链表 特点 一个指针域+一个数据域
多占空间
查找费时
插、删效率高
无法查找前趋结点
运算
特点:单链表+前趋指针域
运算 插入
删除
循环
链表 特点:单链表的尾结点指针指向附加头结点。
运算:联接
1、 栈和队列的异同点。
2、 栈和队列的基本运算
3、 出栈和出队
4、 基本运算
第四章 串 复习 栈 存储结构 栈的概念:在一端操作的线性表
运算算法 栈的特点:先进后出
LIFO
数据结构2008冬
二○○八~二○○九学年第一学期
教 学 日 历
授课对象: 全日制本科
信息与计算科学0701、0702
课程名称: 数据结构
授课教师: 余 艳
授课周次: < 2 > — < 16>周 2次/周
总学时:72 理论学时:60 实践学时:12
考核方式: 闭卷考试
成绩组成比例: 平时成绩:考试成绩=3:7
使用教材:《数据结构》严蔚敏主编,清华大学出版社
系(教研室)主任:
二○○八年九月一日
(专业、年级、班级) 周 次 教学内容 教学方式 理论学时 实践学时 备 注
2 基本概念及术语
ADT的定义、表示和实现方法 讲授 2 第一章
时间复杂度及其估算方法
线性表的类型定义 讲授 2 第二章
3 线性表的顺序表示和实现 讲授 2
单链表的表示及实现 讲授 2
4 循环链表、双向链表
一元多项式的表示及相加 讲授 2
栈的抽象数据类型定义
栈的表示和实现 讲授 2 第三章
5 栈的应用、递归 讲授 2
队列的抽象数据类型定义
队列表示及实现 讲授 2
6 串的抽象数据类型定义
串的表示和实现 讲授 2 第四章
习题课(1~4章) 讲授 2
线性表的应用 上机辅导 2
7 数组的定义、顺序表示和实现
特殊矩阵的存储 讲授 2 第五章
广义表的定义、存储结构
树的定义和基本术语 讲授 2
8 二叉树的遍历 讲授 2 第六章
二叉树的线索化 讲授 2
栈、队列的应用 上机辅导 2
9 树和森林 讲授 2
Huffman树及其应用 讲授 2
数据结构C语言版(第2版)严蔚敏人民邮电出版社课后习题答案 2
数据结构( C语言版)(第 2版)
课后习题答案
李冬梅
2015.3
目 录
第 1 章 绪论 ............................................................................................................................................................................................................................. 1
第 2 章 线性表 ....................................................................................................................................................................................................................... 5
第 3 章 栈和队列 .............................................................................................................................................................................................................. 13
第 4 章 串、数组和广义表 ...................................................................................................................................................................................... 26
《数据结构》第二版严蔚敏课后习题作业参考答案(1-7章)
第1章
4. 答案:
(1)顺序存储结构
顺序存储结构是借助元素在存储器中的相对位置来表示数据元素之间的逻辑关系,通常借助程序设计语言的数组类型来描述。
(2)链式存储结构
顺序存储结构要求所有的元素依次存放在一片连续的存储空间中,而链式存储结构,无需占用一整块存储空间。但为了表示结点之间的关系,需要给每个结点附加指针字段,用于存放后继元素的存储地址。所以链式存储结构通常借助于程序设计语言的指针类型来描述。
5. 选择题
(1)~(6):CCBDDA
\
6.
(1)O(1) (2)O(m*n) (3)O(n2)
(4)O(log3n) (5)O(n2) (6)O(n)
(
第2章
1.选择题
(1)~(5):BABAD (6)~(10): BCABD (11)~(15):CDDAC
\
2.算法设计题
(1)将两个递增的有序链表合并为一个递增的有序链表。要求结果链表仍使用原来两个链表的存储空间, 不另外占用其它的存储空间。表中不允许有重复的数据。
[题目分析]
合并后的新表使用头指针Lc指向,pa和pb分别是链表La和Lb的工作指针,初始化为相应链表的第一个结点,从第一个结点开始进行比较,当两个链表La和Lb均为到达表尾结点时,依次摘取其中较小者重新链接在Lc表的最后。如果两个表中的元素相等,只摘取La表中的元素,删除Lb表中的元素,这样确保合并后表中无重复的元素。当一个表到达表尾结点,为空时,将非空表的剩余元素直接链接在Lc表的最后。
void MergeList(LinkList &La,LinkList &Lb,LinkList &Lc)
{法设计题
(1)将编号为0和1的两个栈存放于一个数组空间V[m]中,栈底分别处于数组的两端。当第0号栈的栈顶指针top[0]等于-1时该栈为空,当第1号栈的栈顶指针top[1]等于m时该栈为空。两个栈均从两端向中间增长。试编写双栈初始化,判断栈空、栈满、进栈和出栈等算法的函数。双栈数据结构的定义如下:
《数据结构-C语言版》(严蔚敏,吴伟民版)课本源码+习题集解析使用说明
《数据结构-C语⾔版》(严蔚敏,吴伟民版)课本源码+习题集解析使⽤说明
《数据结构-C语⾔版》(严蔚敏,吴伟民版)课本源码+习题集解析使⽤说明
先附上⽂档归类⽬录:
课本源码合辑 链接☛☛☛
习题集全解析 链接☛☛☛
★教材及习题源码下载★
链接☛☛☛ (GitHub仓库)
欢迎Star项⽬,如有疑问,请在Issues反馈。
博主有话说:01.⾃学编程,难免思路阻塞,故我在本博客陆续更新了严蔚敏,吴伟民版《数据结构-C语⾔版》各章节的课本源码和配套习题集答案解析,⽬的是为了整理数据结构中的知识点,并与⽹友交流意见,集思⼴益,共同进步。(⽬前已更新完毕,细节待完善)
★注★ 左侧随笔分类下⽤两个栏⽬:、来存放本主题⽂档。
⽬录下实现了三种数据结构源码:
⼀:课本中重点描述过的数据结构与算法;
⼆:课本中提到,但没有详细描述的数据结构;
三:课本中未提到,但在习题集中涉及到的数据结构。
⽬录下存放了配套习题集中每章的习题解答,但对于算法设计题,要注意其相对路径,因为涉及到了别的⽂档的引⽤。
各⽂档的组织⽅式参见附录⼆中的图⽰,有疑问联系博主。
02.本源码与解析涵盖了《数据结构》课本和习题集两部分,课本和习题集分别以下图书籍为参照(我有左边的纸质版和右边的电⼦版,貌似内容没区别):
03.所有源码实现均使⽤C语⾔,遵循C99标准,使⽤C-Free 5(C-Free置gcc编译器,编译时,需要在菜单栏,定位到构建-->构建选项-->类别-->CLanguage,勾选第三个:"ISO C99 plus GNU extensions [-std=gnu99]",即编译选项⽤-std=gnu99,⽽不是-std=c89或者-std=c99)测试通过(不要在CFree⾥创建⼯程,如果确实想在⼯程⾥运⾏,那⽂件互相引⽤的⽅式需要改写)。(是的,初学C语⾔,郑重推荐CFree这个⼩巧的IDE(win7),简洁、易⽤、强⼤!出于兼容性原因,win10上更推荐CLion。注意事项参见第6条)
(完整word版)数据结构,清华大学出版社,严蔚敏吴伟民编著
第一章 绪论
1、 数据结构是计算机中 存储、组织数据 的方式。精心选择的数据 结构可以带来 最优效率 的算法。
2、 程序设计 = 算法 +数据结构
3、 解决问题方法的效率:
跟数据的组织方式有关
跟空间的利用效率有关
跟算法的巧妙程度有关
4、 数据 :所有能输入到计算机中 ,且被计算机处理的符号的集合, 是计算机操作对象的总称;
是计算机处理的信息的某种特定的符号表示形式。
5、 数据元素 :数据中的一个“个体” ,数据结构中讨论的基本单 位。 相当于“记录” ,在计算机程序中通常作为一个整体考 虑和处理。
6、 数据项 : 相当于记录的“域”, 是数据的不可分割的最小单位 如学号。数据元素是数据项的集合。
7、 数据对象 :性质相同的数据元素的集合 .
例如 : 所有运动员的记录集合
8、 数据结构 :是相互间存在某种关系的数据元素集合。
9、 数据结构是带结构的数据元素的集合。
10、 不同的关系构成不同的结构。
11、 次序关系 : {vai,ai+1>|i=1,2,3,4,5,6}
12、 对每种数据结构,主要讨论如下两方面的问题:
1) 数据的逻辑结构,数据结构的基本操作;
2) 数据的存储结构,数据结构基本操作的实现;
13、 数据的逻辑结构:
数据之间的结构关系,是具体关系的抽象。
数据结构的基本操作:
指对数据结构的加工处理。
14、 数据的存储结构(物理结构):
数据结构在计算机内存中的表示。
数据结构基本操作的实现:
基本操作在计算机上的实现(方法)。
15、数据结构的有关概念
|线性表
「上线性结构!栈
[队
(仁数据的逻辑结构= i
B.非彌結构I树形结构 J I图形结构
木数据的存储结枸I A 噸序行储
B 链式存储
< 3、数据的运算:檢索.插入.删除*烽改等
16、数据元素的 4 类的基本结构 :
① 集合; 数£结构的三个方廁 ② 线性结构:结构中数据元素之间存在一对一的关系;
