算法与数据结构(C++语言版)(冯广慧第2版)习题及答案 第7章课后习题答案.docx

算法与数据结构(C++语言版)(冯广慧第2版)习题及答案 第7章课后习题答案.docx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
PAGE PAGE 2 习题答案 一、选择题 1-8:DCBBDDBC 二、判断题 1-5:错错错对错 三、填空题 1.(1)80 (2)001(不唯一) 2.2n0-1 3.(1)5 (2)96 4.(1)2h-1 (2)2h-1 5、(1)顺序(2)?n/2?+1(3)n 四、应用题 1、哈夫曼树的形态不唯一 2、 各字符的二进制编码为: a:00 b:11110 c:1110 d:11111 e:10 f:110 g:01 3、①是堆 ②不是堆 调成堆 100,90,80,25,85,75,60,20,10,70,65,50 4、 275653462 275 653 462 61 908 170 897 87 512 503 503 653 908 275 462 512 897 87 170 61 (2) 求次小值 503653 503 653 61 275 462 5122 897 87 170 908 908 653 61 503 462 512 897 275 170 87 5、 (1)哈夫曼树。 (2)译码过程:译码过程与编码一样需要使用哈夫曼树。译码过程为:自左向右逐一扫描码文,并从哈夫曼树的根开始,将扫描得到的二进制串中的码位与哈夫曼树分支上标的 0、 1 相匹配,以确定一条从根到叶子的路径,一旦达到叶子,则译出了一个字符;再回到树根,从二进位串的下一位开始继续译码 ,直到扫描码文结束。 (3)只需判定存储有字符信息的节点是否全部为叶子结点即可。若存储有某个字符信息的节点非叶子结点,即有子节点,那么它的0/1编码一定是它孩子节点0/1编码的前缀,违反了前缀特性。 五、算法设计 1、 (1)void sift(int n) { ∥假设 data [1..n-1]是大堆 ,本算法把data [1..n]调成大堆 int j= n; data[0]=data[j]; for(int i= n/2; i=1; i=i/2) if(data[0] data[i]) { data[j]=data[i]; j=i; } else break; data[j]=data[0]; } (2)void heapBuilder() { for(int i=2;i=curLength;i++) sift (i); } 2、参见代码7.6 【答案要点】 (1)算法的基本设计思想: 表达式树的中序序列加上必要的括号即为等价的中缀表达式。可以基于二叉树的中序遍历策略得到所需的表达式。(3分) 表达式树中分支结点所对应的子表达式的计算次序,由该分支结点所处的位置决定。为得到正确的中缀表达式,需要在生成遍历序列的同时,在适当位置增加必要的括号。显然,表达式的最外层(对应根结点)及操作数(对应叶结点)不需要添加括号。(2分) (2)算法实现(10分) void BtreeToE(BTree * root) { BtreeToExp(root,1); //根的高度为1 } void BtreeToExp(BTree * root, int deep) { //中序遍历求中缀表达式 if( root = = NULL) return; else if(root-left = = NULL root-right = = NULL) //若为叶结点 printf(“%s”,root-data); //输出操作数 else { if(deep1) printf(“(”); //若有子表达式则加1层括号 BtreeToExp(root-left,deep+1); printf(“%s”,root-data); //输出操作符 BtreeToExp(root-right,deep+1); if(deep1) printf(“)”); //若有子表达式则加1层括号 } }

文档评论(0)

balala11 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档