数据结构(c语言版)第五章答案

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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题。

相关文档
最新文档