第4-10章作业部分参考答案.doc

第4-10章作业部分参考答案.doc

ID:62039761

大小:520.50 KB

页数:4页

时间:2021-04-16

第4-10章作业部分参考答案.doc_第1页
第4-10章作业部分参考答案.doc_第2页
第4-10章作业部分参考答案.doc_第3页
第4-10章作业部分参考答案.doc_第4页
资源描述:

《第4-10章作业部分参考答案.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、个人收集整理勿做商业用途第4-5章作业答案:1. 不包含任何字符(长度为0)的串称为空串;由一个或多个空格(仅由空格符)组成的串  称为空白串。2、设数组a[1…60, 1…70]的基地址为2048,每个元素占2个存储单元,若以列序为主序顺序存储,则元素a[32,58]的存储地址为8950  。答:不考虑0行0列,利用列优先公式:LOC(aij)=LOC(ac1,c2)+[(j-c2)*(d1-c1+1)+i-c1)]*L得:LOC(a32,58)=2048+[(58-1)*(60-1+1)+32-1]]*2=8950第6章作业答案:1.画出和下列二叉树相应的森林。答:注意根右边

2、的子树肯定是森林,而孩子结点的右子树均为兄弟。2.编写递归算法,计算二叉树中叶子结点的数目。思路:输出叶子结点比较简单,用任何一种遍历算法,凡是左右指针均空者,则为叶子,将其统计并打印出来。Intcount_leaf(Bitreeroot,int &sum)//采用先序遍历的递归算法{if(root!=NULL ) //非空二叉树条件,还可写成if(root) {if(!root->lchild&&!root->rchild)//是叶子结点则统计并打印{sum++; printf("%d",root->data);} count_leaf(root->lchild); //递

3、归遍历左子树,直到叶子处;count_leaf(root->rchild);} //递归遍历右子树,直到叶子处;}return(0);}3.编写递归算法,求二叉树中以元素值为a的结点为根的子树的深度。int Get_Sub_Depth(BitreeT,inta)//求二叉树中以值为x的结点为根的子树深度 { if(T->data==x){   printf("%dn",Get_Depth(T));//找到了值为x的结点,求其深度 exit1;个人收集整理勿做商业用途}}else  { if(T->lchild)Get_Sub_Depth(T->lchild,a);if(T->r

4、child)Get_Sub_Depth(T->rchild,a);//在左右子树中继续寻找 }}//Get_Sub_DepthintGet_Depth(Bitree T)//求子树深度的递归算法 {  if(!T) return0;else{m=Get_Depth(T->lchild);   n=Get_Depth(T->rchild);  return(m>n?m:n)+1;  }}//Get_Depth4.假设用于通信的电文仅由8个字母组成,字母在电文中出现的频率分别为0.07,0.19,0.02,0.06,0.32,0.03,0.21,0.10。试为这8个字母设计哈夫曼编码

5、。使用0~7的二进制表示形式是另一种编码方案。对于上述实例,比较两种方案的优缺点。解:方案1;哈夫曼编码先将概率放大100倍,以方便构造哈夫曼树。w={7,19,2,6,32,3,21,10},按哈夫曼规则:【[(2,3),6],(7,10)】,……19,21,32 0 1  0 1 0 1192132 01010 171060123 (100)(40) (60)19  21  32 (28)(17)(11)7   10 6 (5)        23方案比较:字母编号对应编码出现频率111000.072000.193111100.02411100.065100.3261111

6、10.037010.21811010.10字母编号对应编码出现频率10000.0720010.1930100.0240110.0651000.3261010.0371100.2181110.10个人收集整理勿做商业用途方案1的WPL=2(0.19+0.32+0.21)+4(0.07+0.06+0.10)+5(0.02+0.03)=1.44+0.92+0.25=2.61方案2的WPL=3(0.19+0.32+0.21+0.07+0.06+0.10+0.02+0.03)=3结论:哈夫曼编码优于等长二进制编码第7章作业答案:第9章作业答案:1.假定对有序表:(3,4,5,7,24,30

7、,42,54,63,72,87,95)进行折半查找,试回答下列问题:(1)画出描述折半查找过程的判定树;(2)若查找元素54,需依次与哪些元素比较?(3)若查找元素90,需依次与哪些元素比较?(4)假定每个元素的查找概率相等,求查找成功时的平均查找长度。解:(1)先画出判定树如下(注:mid=ë(1+12)/2û=6):305  63个人收集整理勿做商业用途37  42    87    4 24 54 72  95(2)查找元素54,需依次与30,63,42,54等元素比较;(

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。