欢迎来到天天文库
浏览记录
ID:41688850
大小:280.19 KB
页数:26页
时间:2019-08-30
《算法与数据结构C语言版课后习题答案第910章》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第9章集合一、基础知识题9.1若对长度均为n的有序的顺序表和无序的顺序表分别进行顺序查找,试在下列三种情况下分别讨论二者在等概率情况下平均查找长度是否相同?(1)查找不成功,即表中没有和关键字K相等的记录;(2)查找成功,且表中只有一个和关键字K相等的记录;(3)查找成功,且表中有多个和关键字K相等的记录,要求计算有多少个和关键字K相等的记录。【解答】(1)平均查找长度不相同。前者在n+1个位置均可能失败,后者失败时的查找长度都是n+1。(2)平均查找长度相同。在n个位置上均可能成功。(3)平均查找长度不相同。前者在某个位置上
2、(1<=i<=n)查找成功时,和关键字K相等的记录是连续的,而后者要查找完顺序表的全部记录。9.2在查找和排序算法中,监视哨的作用是什么?【解答】监视哨的作用是免去查找过程中每次都要检测整个表是否查找完毕,提高了查找效率。9.3用分块查找法,有2000项的表分成多少块最理想?每块的理想长度是多少?若每块长度为25,平均查找长度是多少?【解答】分成45块,每块的理想长度为45(最后一块长20)。若每块长25,则平均查找长度为ASL=(80+1)/2+(25+1)/2=53.5(顺序查找确定块),或ASL=19(折半查找确定块)。
3、9.4用不同的输入顺序输入n个关键字,可能构造出的二叉排序树具有多少种不同形态?【解答】9.5 证明若二叉排序树中的一个结点存在两个孩子,则它的中序后继结点没有左孩子,中序前驱结点没有右孩子。【证明】根据中序遍历的定义,该结点的中序后继是其右子树上按中序遍历的第一个结点,即右子树上值最小的结点:叶子结点或仅有右子树的结点,没有左孩子;而其中序前驱是其左子树上按中序遍历的最后个结点,即左子树上值最大的结点:叶子结点或仅有左子树的结点,没有右孩子。命题得证。9.6 对于一个高度为h的AVL树,其最少结点数是多少?反之,对于一个有
4、n个结点的AVL树,其最大高度是多少?最小高度是多少?【解答】设以Nh表示深度为h的AVL树中含有的最少结点数。显然,N0=0,N1=1,N2=2,且Nh=Nh-1+Nh-2+1(h≥2)。这个关系与斐波那契序列类似,用归纳法可以证明:当h≥0时,Nh=Fh+2-1,而Fh约等于Фh/。其中Ф=(1+)/2,则Nh约等于Фh+2/(-1)(即深度为h的AVL树具有的最少结点数)。有n个结点的平衡二叉树的最大高度是logФ((n+1))-2,最小高度是ëlog2nû。9.7 试推导含有12个结点的平衡二叉树的最大深度,并画出一
5、棵这样的树。【解答】根据9.6的结论可知,深度为n的AVL树中的最少结点数为所以12=,有=13,求得n+2=7(Fibonacci数列第一项的值假设为1,对应于二叉树表示有一个结点的二叉树的深度为1),所以n=5。可表示为如下图所示的AVL树: 9.8 假定有n个关键字,它们具有相同的哈希函数值,用线性探测方法把这n个关键字存入到哈希表中要做多少次探测?【解答】n个关键字都是同义词,因此用线性探测法第一个关键字存入时不会发生冲突,所以探测的次数应为次。9.9 建立一棵具有13个结点的判定树,并求其成功和不成功的平
6、均查找长度值各为多少。【解答】31015124268119137查找成功时的平均查找长度为:查找不成功时的平均查找长度为:9.10 二叉排序树中关键字互不相同,则其中关键字最小值结点无左孩子,关键字最大值结点无右孩子,此命题是否正确?最小值结点和最大值结点一定是叶子吗?一个新结点总是插在二叉排序树的某叶子上吗?【解答】(1)此命题正确。(2)最小值结点和最大值结点不一定是叶子结点。(3)一个新结点不一定总是插在二叉排序树的某叶子上。9.11 回答问题并填空:(1)散列表存储的基本思想是什么?(2)散列表存储中解决碰撞的基本方法
7、有哪些?其基本思想是什么?(3)用线性探查法解决碰撞时,如何处理被删除的结点?为什么?【解答】(1)散列表存储的基本思想是用关键字的值决定数据元素的存储地址(2)散列表存储中解决碰撞的基本方法:①开放定址法形成地址序列的公式是:Hi=(H(key)+di)%m,其中m是表长,di是增量。根据di取法不同,又分为三种:a.di=1,2,…,m-1称为线性探测再散列,其特点是逐个探测表空间,只要散列表中有空闲空间,就可解决碰撞,缺点是容易造成“聚集”,即不是同义词的关键字争夺同一散列地址。b.di=12,-12,22,-22,…,
8、±k2(k≤m/2)称为二次探测再散列,它减少了聚集,但不容易探测到全部表空间,只有当表长为形如4j+3(j为整数)的素数时才有可能。c.di=伪随机数序列,称为随机探测再散列。②再散列法Hi=RHi(key)i=1,2,…,k,是不同的散列函数,即在同义词产生碰撞时,用另一
此文档下载收益归作者所有