数据结构(c语言版)第五章答案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数据结构(c语言版)第五章答案
第五章
1、设二维数组A【8】【10】是一个按行优先顺序存储在内存中的数组,已知A【0】【0】的起始存储位置为1000,每个数组元素占用4个存储单元,求:
(1)A【4】【5】的起始存储位置。
A【4】【5】的起始存储位置为1000+(10*4+5)*4=1180;
(2)起始存储位置为1184的数组元素的下标。
起始存储位置为1184的数组元素的下标为4(行下标)、6(列下标)。
2、画出下列广义表D=((c),(e),(a,(b,c,d)))的图形表示和它们的存储表示。
略,参考第5·2节应用题第5题分析与解答。
3、已知A为稀疏矩阵,试从时间和空间角度比较采用两种不同的存储结构(二维数组和三元组表)实现求∑a(i,j)运算的优缺点。
稀疏矩阵A采用二维数组存储时,需要n*n个存储单元,完成求∑ii a(1≤i≤n)时,由于a【i】【i】随机存取,速度快。但采用三元组表时,若非零元素个数为t,需3t+3个存储单元(t个分量存各非零元素的行值、列值、元素值),同时还需要三个存储单元存储存稀疏矩阵A的行数、列数和非零元素个数,比二维数组节省存储单元;但在求∑ii a(1≤i≤n)时,要扫描整个三元组表,以便找到行列值相等的非零元素求和,其时间性能比采用二维数组时差。
4、利用三元组存储任意稀疏数组时,在什么条件下才能节省存储空间?
当m行n列稀疏矩阵中非零元素个数为t,当满足关系3*t
5、求下列各广义表的操作结果。
(1)GetHead((a,(b,c),d))
GetHead((a,(b,c),d))=a
(2)GetTail((a,(b,c),d))
GetTail((a,(b,c),d))=((b,c),d)
(3)GetHead(GetTail((a,(b,c),d)))
GetHead(GetTail((a,(b,c),d)))=(b,c)
(4)GetTail(GetHead((a,(b,c),d)))
GetTail(GetHead((a,(b,c),d)))=()
第六章
1、已知一棵树边的集合为{(i,m),(i,n),(e,i),(b,e),(b,d),(a,b),(g,j),(g,k),(c,g),(c,f),(h,l),(c,h),(a,c)}用树形表示法画出此树,并回答下列问题:
(1)哪个是根结点?
(2)哪些是叶结点?
(3)哪个是g的双亲?
(4)哪些是g的祖先?
(5)哪些是g的孩子?
(6)哪些是e的子孙?
(7)哪些是e的兄弟?哪些是f的兄弟?
(8)结点b和n的层次号分别是什么?
(9)树的深度是多少?
(10)以结点c为根的子树的深度是多少?
(11)树的度数是多少?
略。
2、设一棵完全二叉树叶子结点数为k ,试证明该二叉树的高度为??1log 2+k 。证明略。
3、已知一棵度为m 的树中有1n 个度为1的结点,2n 个度为2的结点,……,m n 个度为m 的结点,问该树中有多少片叶子?
参见第6·2节应用题中的第一题。
4、已知某完全二叉树有100个结点,试求该二叉树的叶子树。
该二叉树的叶子树为50。
5、已知完全二叉树的第6层有5个叶子,试画出所有满足这一条件的完全二叉树,并指出结点最多的那棵树的叶子数目。
根据完全二叉树的定义,有两种情况:(1)第6层为最高层,且有5个叶子;(2)第7层为最高层,且第6层有5个叶子。
6、一个深度为L 的满k 叉树有如下性质,第L 层上的结点都是叶子结点,其余各层上每个结点都有k 棵非空子树。如果按层次顺序从1开始对全部结点编号,问:
(1)第i 层的结点数目是多少?
(2)编号为n 的结点的双亲结点(若存在)的编号是多少?
(3)编号为n 的结点的第i 个孩子结点(若存在)的编号是多少?
(4)编号为n 的结点有右兄弟的条件是什么?其右兄弟的编号是多少?
答案分别为k i 1-,??k n /)1(-,i n k +-)1(*,??k k n n */)1(-≤,1+n
7、试找出分别满足下面条件的所有二叉树:
(1)先序序列和中序序列相同。
(2)中序序列和后序序列相同。
(3)先序序列和后序序列相同。
略。
8、证明:一棵满k 叉树上的叶结点数0n 和非叶子结点数m 之间满足下列关系: 0n =(k-1)m+1
证明:总结点数n=0n +m ,又n-1=km ,所以0n =(k-1)m+1。
9、已知一棵二叉树的中序序列和后序序列分别为BDCEAFHG 和DECBHGFA ,画出这棵二叉树。并写出其先序遍历序列。
先序遍历序列为ABCDEFGH 。
10、将图6·22所示的森林转换为二叉树。
图6·22 将森林转换为二叉树
参见第6·2节中的应用题中的第7题。
11、写出图6·22所示森林的前序序列和后序序列。
参见第6·2节中的应用题中的第7题。
A B C D E F G H I J K L M N O P
Q R
12、给定一组数列(15,8,10,21,6,19,3)分别代表字符A,B,C,D,E,F,G出现的频度,试画出哈夫曼树,给出各字符的编码值。
参见第6·2节中的应用题的第10题。