数据结构课后练习 - 第6章

合集下载

《数据结构》第二版严蔚敏课后习题作业参考答案(1-7章)

《数据结构》第二版严蔚敏课后习题作业参考答案(1-7章)

《数据结构》第二版严蔚敏课后习题作业参考答案(1-7章)【第一章绪论】1. 数据结构是计算机科学中的重要基础知识,它研究的是如何组织和存储数据,以及如何通过高效的算法进行数据的操作和处理。

本章主要介绍了数据结构的基本概念和发展历程。

【第二章线性表】1. 线性表是由一组数据元素组成的数据结构,它的特点是元素之间存在着一对一的线性关系。

本章主要介绍了线性表的顺序存储结构和链式存储结构,以及它们的操作和应用。

【第三章栈与队列】1. 栈是一种特殊的线性表,它的特点是只能在表的一端进行插入和删除操作。

本章主要介绍了栈的顺序存储结构和链式存储结构,以及栈的应用场景。

2. 队列也是一种特殊的线性表,它的特点是只能在表的一端进行插入操作,而在另一端进行删除操作。

本章主要介绍了队列的顺序存储结构和链式存储结构,以及队列的应用场景。

【第四章串】1. 串是由零个或多个字符组成的有限序列,它是一种线性表的特例。

本章主要介绍了串的存储结构和基本操作,以及串的模式匹配算法。

【第五章数组与广义表】1. 数组是一种线性表的顺序存储结构,它的特点是所有元素都具有相同数据类型。

本章主要介绍了一维数组和多维数组的存储结构和基本操作,以及广义表的概念和表示方法。

【第六章树与二叉树】1. 树是一种非线性的数据结构,它的特点是一个节点可以有多个子节点。

本章主要介绍了树的基本概念和属性,以及树的存储结构和遍历算法。

2. 二叉树是一种特殊的树,它的每个节点最多只有两个子节点。

本章主要介绍了二叉树的存储结构和遍历算法,以及一些特殊的二叉树。

【第七章图】1. 图是一种非线性的数据结构,它由顶点集合和边集合组成。

本章主要介绍了图的基本概念和属性,以及图的存储结构和遍历算法。

【总结】1. 数据结构是计算机科学中非常重要的一门基础课程,它关注的是如何高效地组织和存储数据,以及如何通过算法进行数据的操作和处理。

本文对《数据结构》第二版严蔚敏的课后习题作业提供了参考答案,涵盖了第1-7章的内容。

数据结构(C++版)课后作业1-6章带答案

数据结构(C++版)课后作业1-6章带答案

第1 章绪论课后习题讲解1. 填空(1) 从逻辑关系上讲,数据结构主要分为()、()、()和()。

(2) 数据的存储结构主要有()和()两种基本方法,不论哪种存储结构,都要存储两方面的内容:()和()。

(3)算法在发生非法操作时可以作出处理的特性称为()。

2. 选择题⑴顺序存储结构中数据元素之间的逻辑关系是由()表示的,链接存储结构中的数据元素之间的逻辑关系是由()表示的。

A 线性结构 B 非线性结构 C 存储位置 D 指针⑵假设有如下遗产继承规则:丈夫和妻子可以相互继承遗产;子女可以继承父亲或母亲的遗产;子女间不能相互继承。

则表示该遗产继承关系的最合适的数据结构应该是()。

A 树 B 图 C 线性表 D 集合3. 判断题(1) 每种数据结构都具备三个基本操作:插入、删除和查找。

第2 章线性表课后习题讲解1. 填空⑵顺序表中第一个元素的存储地址是100,每个元素的长度为2,则第5个元素的存储地址是()。

第5个元素的存储地址=第1个元素的存储地址+(5-1)×2=108⑶设单链表中指针p 指向结点A,若要删除A的后继结点(假设A存在后继结点),则需修改指针的操作为()。

【解答】p->next=(p->next)->next⑸非空的单循环链表由头指针head指示,则其尾结点(由指针p所指)满足()。

p->next=head⑹在由尾指针rear指示的单循环链表中,在表尾插入一个结点s的操作序列是();删除开始结点的操作序列为()。

【解答】s->next =rear->next; rear->next =s; rear =s; q=rear->next->next;rear->next->next=q->next; delete q;2. 选择题⑴线性表的顺序存储结构是一种()的存储结构,线性表的链接存储结构是一种()的存储结构。

数据结构课后习题答案(耿国华版

数据结构课后习题答案(耿国华版

第1章绪论2 、(1)×(2)×(3) √3 、(1)A(2)C(3)C5、f or计(算i=下1n程;序中 1 得语句频度for(j=1;j<=i; j++)for(k=1;k<=j;k ++)x=x+1;【解答】 x=x+1 得语句频度为:T(n)=1+(1+2)+(1+2+3)+. …+(1+2+……+n)=n(n+1)(n+2)/66 、编写算法,求一元多项式p。

(x)=a。

+a,x+a₂X2+……、+a Xn得值p(x) 并确定算法中每一语句得执行次数与整个算法得时间复杂度,要求时间复杂度尽可能小,规定算法中不能使用求幂函数.注意:本题中得输入为a,(i=01,…n)、x 与n,输出为P。

(x)。

算法得输入与输出采用下列方法(1)通过参数表中得参数显式传递(2)通过全局变量隐式传递。

讨论两种方法得优缺点,并在算法中以您认为较好得一种实现输入输出.【解答】(1)通过参数表中得参数显式传递优点:当没有调用函数时,不占用内存,调用结束后形参被释放,实参维持,函数通用性强,移置性强。

缺点:形参须与实参对应,且返回值数量有限。

(2)通过全局变量隐式传递优点:减少实参预形参得个数,从而减少内存空间以及传递数据时得时间消耗缺点:函数通用性降低,移植性差算法如下:通过全局变量隐式传递参数PolyValue({ int,in;floatx,a[]p;pri n tf(hn=”);s c anf(“%f,”&n);printf(“x=”;)sca nf(“%f&x);f or(i=0;i<n; i++)s c anf(%f ,&a[i]; /*执行次数:n 次 */p=a[0];for (i=1;i<=n;i++){ p=p+a [i]*x; /*执行次数:n次*/x= x*x;}prin t f(%f” p);}算法得时间复杂度:T(n)=0(n)通过参数表中得参数显式传递f loat PolyVa lue(float a[ ], float x, i nt n)f 1 oat p, s;int;is p a X0];for(=1;i<= n;i++)/执行次数:n 次*/{s=s+a [i]* p;p=p*x;}re turn(p);算法得时间复杂度:T(n)=O(n)第2章线性表习题1、填空:(1)在顺序表中插入或者删除一个元素,需要平均挪移一半元素,具体挪移得元素个数与插入或者删除得位置有关。

数据结构教程李春葆课后答案第6章数组和广义表

数据结构教程李春葆课后答案第6章数组和广义表

3. 如果某个一维数组 A 的元素个数 n 很大,存在大量重复的元素,且所有元素值相同 的元素紧挨在一起,请设计一种压缩存储方式使得存储空间更节省。
答:设数组的元素类型为 ElemType,采用一种结构体数组 B 来实现压缩存储,该结构 体数组的元素类型如下:
struct { ElemType data;
解:从二维数组 B 的右上角的元素开始比较。每次比较有三种可能的结果:若相等, 则比较结束;若 x 大于右上角元素,则可断定二维数组的最上面一行肯定没有与 x 相等的 数据,下次比较时搜索范围可减少一行;若 x 小于右上角元素,则可断定二维数组的最右 面一列肯定不包含与 x 相等的数据,下次比较时可把最右一列剔除出搜索范围。这样,每 次比较可使搜索范围减少一行或一列,最多经过 m+n 次比较就可找到要求的与 x 相等的元 素。对应的程序如下:
{ printf("不是对角矩阵\n");
return false;
}
for (int i=0;i<a.nums;i++)
if (a.data[i].r==a.data[i].c) //行号等于列号
sum+=a.data[i].d;
return true;
}
11. 设计一个算法 Same(g1,g2),判断两个广义表 g1 和 g2 是否相同。 解:判断广义表是否相同过程是,若 g1 和 g2 均为 NULL,则返回 true;若 g1 和 g2 中一个为 NULL,另一不为 NULL,则返回 false;若 g1 和 g2 均不为 NULL,若同为原子 且原子值不相等,则返回 false,若同为原子且原子值相等,则返回 Same(g1->link,g2->link), 若同为子表,则返回 Same(g1->val.sublist,g2->val.sublist) & Same(g1->link,g2->link)的 结果,若一个为原子另一个为子表,则返回 false。对应的算法如下:

数据结构课后习题答案

数据结构课后习题答案

大学课程《数据结构》课后习题答案第 1 章绪论课后习题讲解1. 填空⑴()是数据的基本单位,在计算机程序中通常作为一个整体进行考虑和处理。

【解答】数据元素⑵()是数据的最小单位,()是讨论数据结构时涉及的最小数据单位。

【解答】数据项,数据元素【分析】数据结构指的是数据元素以及数据元素之间的关系。

⑶从逻辑关系上讲,数据结构主要分为()、()、()和()。

【解答】集合,线性结构,树结构,图结构⑷数据的存储结构主要有()和()两种基本方法,不论哪种存储结构,都要存储两方面的内容:()和()。

【解答】顺序存储结构,链接存储结构,数据元素,数据元素之间的关系⑸算法具有五个特性,分别是()、()、()、()、()。

【解答】有零个或多个输入,有一个或多个输出,有穷性,确定性,可行性⑹算法的描述方法通常有()、()、()和()四种,其中,()被称为算法语言。

【解答】自然语言,程序设计语言,流程图,伪代码,伪代码⑺在一般情况下,一个算法的时间复杂度是()的函数。

【解答】问题规模⑻设待处理问题的规模为n,若一个算法的时间复杂度为一个常数,则表示成数量级的形式为(),若为n*log25n,则表示成数量级的形式为()。

【解答】Ο(1),Ο(nlog2n)【分析】用大O记号表示算法的时间复杂度,需要将低次幂去掉,将最高次幂的系数去掉。

2. 选择题⑴顺序存储结构中数据元素之间的逻辑关系是由()表示的,链接存储结构中的数据元素之间的逻辑关系是由()表示的。

A 线性结构B 非线性结构C 存储位置D 指针【解答】C,D【分析】顺序存储结构就是用一维数组存储数据结构中的数据元素,其逻辑关系由存储位置(即元素在数组中的下标)表示;链接存储结构中一个数据元素对应链表中的一个结点,元素之间的逻辑关系由结点中的指针表示。

⑵假设有如下遗产继承规则:丈夫和妻子可以相互继承遗产;子女可以继承父亲或母亲的遗产;子女间不能相互继承。

则表示该遗产继承关系的最合适的数据结构应该是()。

数据结构课后习题(第6章)

数据结构课后习题(第6章)

【课后习题】第6章树和二叉树网络工程2010级()班学号:姓名:一、填空题(每空1分,共16分)1.从逻辑结构看,树是典型的。

2.设一棵完全二叉树具有999个结点,则此完全二叉树有个叶子结点,有个度为2的结点,有个度为1的结点。

3.由n个权值构成的哈夫曼树共有个结点。

4.在线索化二叉树中,T所指结点没有左子树的充要条件是。

5.在非空树上,_____没有直接前趋。

6.深度为k的二叉树最多有结点,最少有个结点。

7.若按层次顺序将一棵有n个结点的完全二叉树的所有结点从1到n编号,那么当i为且小于n时,结点i的右兄弟是结点,否则结点i没有右兄弟。

8.N个结点的二叉树采用二叉链表存放,共有空链域个数为。

9.一棵深度为7的满二叉树有___ ___个非终端结点。

10.将一棵树转换为二叉树表示后,该二叉树的根结点没有。

11.采用二叉树来表示树时,树的先根次序遍历结果与其对应的二叉树的遍历结果是一样的。

12.一棵Huffman树是带权路径长度最短的二叉树,权值的外结点离根较远。

二、判断题(如果正确,在对应位置打“√”,否则打“⨯”。

每题0.5分,共5分)1.对于一棵非空二叉树,它的根结点作为第一层,则它的第i层上最多能有2i-1个结点。

2.二叉树的前序遍历并不能唯一确定这棵树,但是,如果我们还知道该二叉树的根结点是那一个,则可以确定这棵二叉树。

3.一棵树中的叶子结点数一定等于与其对应的二叉树中的叶子结点数。

4.度≤2的树就是二叉树。

5.一棵Huffman树是带权路径长度最短的二叉树,权值较大的外结点离根较远。

6.采用二叉树来表示树时,树的先根次序遍历结果与其对应的二叉树的前序遍历结果是一样的。

7.不存在有偶数个结点的满二叉树。

8.满二叉树一定是完全二叉树,而完全二叉树不一定是满二叉树。

9.已知二叉树的前序遍历顺序和中序遍历顺序,可以惟一确定一棵二叉树;10.已知二叉树的前序遍历顺序和后序遍历顺序,不能惟一确定一棵二叉树;三、单项选择(请将正确答案的代号填写在下表对应题号下面。

北邮C++数据结构课后习题 习题6参考答案

北邮C++数据结构课后习题 习题6参考答案

习题61.填空题(1)由10000个结点构成的二叉排序树,在等概率查找的条件下,查找成功时的平均查找长度的最大值可能达到(___________)。

答案:5000.5(2)长度为11的有序序列:1,12,13,24,35,36,47,58,59,69,71进行等概率查找,如果采用顺序查找,则平均查找长度为(___________),如果采用二分查找,则平均查找长度为(___________),如果采用哈希查找,哈希表长为15,哈希函数为H(key)=key%13,采用线性探测解决地址冲突,即d i=(H(key)+i)%15,则平均查找长度为(保留1位小数)(___________)。

答案:6,3,1.6(3)在折半查找中,查找终止的条件为(___________)。

答案:找到匹配元素或者low>high?(4)某索引顺序表共有元素275个,平均分成5块。

若先对索引表采用顺序查找,再对块元素进行顺序查找,则等概率情况下,分块查找成功的平均查找长度是(___________)。

答案:31(5)高度为8的平衡二叉树的结点数至少是(___________)。

答案: 54 计算公式:F(n)=F(n-1)+F(n-2)+1(6)对于这个序列{25,43,62,31,48,56},采用的散列函数为H(k)=k%7,则元素48的同义词是(___________)。

(7)在各种查找方法中,平均查找长度与结点个数无关的查找方法是(___________)。

答案:散列查找(8)一个按元素值排好的顺序表(长度大于2),分别用顺序查找和折半查找与给定值相等的元素,平均比较次数分别是s和b,在查找成功的情况下,s和b的关系是(___________);在查找不成功的情况下,s和b的关系是(___________)。

答案:(1)(2s-1)b=2s([log2(2s-1)]+1)-2[log2(2s-1)]+1+1(2)分两种情况考虑,见解答。

数据结构 第六章测验 测验答案 慕课答案 UOOC优课 课后练习 深圳大学

数据结构 第六章测验 测验答案 慕课答案 UOOC优课 课后练习 深圳大学

数据结构第六章测验一、单选题 (共100.00分)1. 树的存储结构不包括()A. 祖先表示法B. 双亲表示法C. 孩子表示法D. 孩子兄弟表示法正确答案:A2. 二叉树的深度为8,则该二叉树最多有()个结点A. 15B. 16C. 255D. 256正确答案:C3. 已知二叉树有11个结点,其中4个结点是有一个孩子,叶子有()个A. 4B. 5C. 6D. 3正确答案:A4. 已知A是二叉树根结点,B、C分别是A的左右孩子,D是B的左孩子,E是C的右孩子,F是D的右孩子,则该二叉树的中序遍历序列是()A. FDBECAB. DFBACEC. ABDFCED. ABCDEF正确答案:B5. 赫夫曼树是指()A. 路径长度最大的树B. 路径长度和最小的树C. 带权路径长度和最大的二叉树D. 带权路径长度和最小的二叉树正确答案:D6. 为了避免重复遍历在二叉树中保存前驱后继信息,这种二叉树称为()A. 遍历二叉树B. 完全二叉树C. 满二叉树D. 线索二叉树正确答案:D7. 已知一棵完全二叉树有20个结点,从1开始按层次遍历编号,则结点8的孩子编号是()A. 左孩子编号4,右孩子编号5B. 左孩子编号9,右孩子编号10C. 左孩子编号16,右孩子编号17D. 左孩子编号20,右孩子不存在正确答案:C8. 在二叉树中C是D的右孩子,在先序遍历序列中C在D的()A. 前面B. 后面C. 不好说D. 并列正确答案:B9. 二叉树的第4层最多有()个结点A. 4B. 6C. 8D. 16正确答案:C10. 二叉树的中序遍历序列中,结点P排在结点Q之前的条件是()A. 在二叉树中P在Q的左边B. 在二叉树中P在Q的右边C. 在二叉树中P是Q的祖先D. 在二叉树中P是Q的子孙正确答案:A。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2. 哈夫曼树的带权路径长度_最__短__________的二叉树。 3. 某二叉树的前序遍历序列为DABEC,中序遍历序列为
DEBAC,则后序遍历序列为_E_B__C_A__D_____________。
三、填空题
4. 有20个结点的完全二叉树,编码为10的结点的父结点 的编号是_5________。
分析:
1. 首先建立赫夫曼树;
2. 然后根据左、右分支建立编码。
• 赫夫曼编码: 1. 2:10000; 2. 3:10001; 3. 6:1001; 4. 7:1010; 5. 10:1011 6. 19:00; 7. 21:01; 8. 32:11。
100
0
1
40 01
60 01
19
21 28
5. 在一棵二叉树中,度为2的结点有5个,度为1的结点有 6个,则叶子结点数有__6_______个。
四、简答题
1. 一棵度为2的树与一棵二叉树有何区别? • 解:有序树和无序树的区别。
四、简答题
2. 给定一个权集W={4,5,7,8,6,12,18},请画出相应的哈夫曼 树,并计算其带权路径长度WPL。
第6章 树和二叉树
6.1 树的定义和基本术语 6.2 二叉树 6.3 遍历二叉树和线索二叉树 6.4 树和森林 6.6 赫夫曼树及其应用
学习要点
1、树和森林的概念(树的定义,树的术语、性质及运 算);
2、二叉树的定义、性质及运算; 3、二叉树的存储结构(顺序、链式表示); 4、遍历二叉树; 5、树的存储结构;树、森林与二叉树的转换;遍历树;
60
35
25
WPL = 8×3 + (4 + 5)×4 + 18×2 + 12×2 + (6+7)×3 = 159
树型不唯一,但最小WPL值是唯
17
18 12 13 一的。
8
9
6
7
4
5
3. 设在树中,结点x是结点y的双亲,用来表示边。已知一棵树 边的集合为: { i, j , i, k , b,e , e, i , b,d , a,b ,
c, g , c, f , c,h , a,c } ⑴ 哪个是根结点?⑵ 哪些是叶结点? ⑶ 哪个是g的双亲?⑷ 哪些是g的祖先? ⑸ 哪些是e的子孙?⑹ 哪些是f的兄弟? ⑺ 结点b和j的层次各是多少? ⑻ 树的深度是多少? ⑼ 树的度数是多少?
a
• 根结点:a;
• 叶子结点:d,f,g,h,j,k;
A. n B. n+1 C. n-1 D. 不确定 3. 根据树的定义,具有3个结点的树有__A_____种树形。
A. 2 B. 3 C. 4 D. 5
二、单项选择题
4. 节点前序为ABC的不同二叉树__C______形态。 A. 3 B. 4 C. 5 D. 6 5. 具有35个结点的完全二叉树的深度为__B_______。 A. 5 B. 6 C. 7 D. 8
• 孩子兄弟链表
^A^
^B^
^E^
^C^
^F^ ^G^
^D^
^ K ^ ^ H ^^ J ^ ^L^ ^ I ^
8. 将下图所示的森林转换成二叉树。
A
G
J
B
DH
C
I
K
LM N
• 结果二叉树
A
B
G
CH
J
ED
IK
F
L
M
N
9. 设某密码电文由8个字母组成,每个字母在电文中的出现频 率分别是7,19,2,6,32,3,21,10,试为这8个字母设 计相应的赫夫曼编码。
由。
利用树的性质:对任何一棵二叉树T,如果其终端结点数为n0, 度为2的结点数为n2,则:n0 = n2 + 1。
7. 分别画出下图所示树的孩子链表(同构)和孩子兄弟链表。 A
B
C
D
E
FGH I
J
KL
• 孩子链表(同构)
A
1
B
4
C
6
D
9^
E^
F^
G
10
H^
I^
J^
K^
L^
2 5^ 7
11 ^
3^ 8^
② 写出该树后序遍历的结点访问顺序。
a
后序遍历:
b
c
gdbehfca
d
ef
g
h
5. 设树T的度为4,其中度为1,2,3,4的结点个数分别为4, 2,1,1。问T中有多少个叶子结点?
利用树的性质:各结点射出的分支总数+1=总结点数
① 树T中,各个结点射出的分支总数: 4×1 + 2×2 + 1×3 + 1×4 = 15
32
01
11
17
0 1 01
5
6 7 10
01
2
3
10. 编码{00,01,10,11}、{0,1,00,11}、{0,10,110, 111}哪一组不是前缀编码?
三、填空题
1. 在树的定义中,结点的度是_结__点__拥__有__子__树__个__数_____ ; 叶子结点是_度__为__0_的__结__点__________ ;树的度是 _树__中__所__有__结__点__的__最__大__值_;树中结点的最大层次称为树 的_深__度__/_高__度____________。
b
c
• g的双亲:c;
• g的祖先:a,c;
e
d g f h • e的子孙:i,j,k;
• f的兄弟:g,h;
i
• b的层次:2,j的层次:5;
• 树的深度:5;
jk
• 树的度:3。
4. 某二叉树的前序遍历的结点访问顺序是abdgcefh,而中序 遍历的结点访问顺序是dgbaechf,则:
① 画出这棵树的形态。
②则树T中的总结点数为:15 + 1 = 16 ③非叶子结点总数为:4 + 2 + 1 + 1 = 8 ④叶子结点总数:16 – 8 = 8
6. 设一棵完全二叉树具有1000个结点。问: ① 该完全二叉树有多少个叶子结点?有多少个度为2的结点?
有多少个度为1的结点? ② 若完全二叉树有1001个结点,再回答上述问题,并说明理
遍历森林; 6、哈夫曼树、哈夫曼编码。
一、判断对错题
1. 树结构中每个结点最多只有一个直接前驱。(√ ) 2. 由树转成二叉树,其根节点的右子树一定为空。(√ ) 3. 在前序遍历二叉树的序列中,任何结点的子树的所有结点
都是直接跟在该结点之后。(× ) 4. 在中序线索二叉树中,右线索若不为空,则一定指向其双
亲。(× ) 5. 已知二叉树的前序遍历和后序遍历不能唯一确定这棵二叉
树ห้องสมุดไป่ตู้这是因为不知道根结点是哪一个。(× )
二、单项选择题
1. 树最适合用来表示__D_____。
A. 有序数据元素
B. 无序数据元素
C. 元素之间无联系的数据 D. 元素之间有分支层次的关系 2. 一棵n个结点的二叉树,其空指针域的个数为_B______。
相关文档
最新文档