数据结构练习题及参考标准答案.docVIP

数据结构练习题及参考标准答案.doc

此“教育”领域文档为创作者个人分享资料,不作为权威性指导和指引,仅供参考
  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
PAGE PAGE 6 《数据结构》练习题 一、解答题(共50分) 字符 出现频率 a 0.05 b 0.03 c 0.24 d 0.16 e 0.08 f 0.24 g 0.18 h 0.02 1、(8分)假设用于通讯的电文字符集及其出现的频率如下表所示。 请为这8个字符设计哈夫曼编码,并画出其哈夫曼树,计算WPL。 2. (8分)若一棵二叉树中序遍历和后序遍历序列分别为:DBEHGAFIC和DHGEBIFCA。试画出这棵二叉树,并写出其先序遍历和层序遍历序列。 3.(16分)以下无向网络以邻接表为存储结构(假设邻接表的顶点表按字母a、b、c、d、e、f、g、h的顺序依次存储,邻接表的边表结点按顶点的下标由小到大链接)。请画出其邻接表,并写出从顶点f出发,分别进行深度和广度优先遍历的序列,写出用Prime方法从顶点c开始产生最小生成树的边的序列。 4.(8分)已知键值序列为(44,39,67,25, 52,59,43,84,54,58,15,26,12,73,92,69),取填充因子α=0.8,采用线性探查法处理冲突,试构造散列表。 ⒌(5分)已知一组记录为(67,88,15,12,60,37,7,31,45,81),用希尔排序方法进行排序,d1=5,d2=3,d3=1,则第二趟的排序结果是( )。 ⒍(5分)已知一组记录为(67,88,15,12,60,37,7,31,45,81) ,用堆(大根堆)排序方法进行排序,第一趟的排序结果是( )。 二、完善程序(共20分,每空2分) 1.假设一组递减有序的原始数据存储在数组r中,存放元素的下标下限为low,下标上限为high,以下是在数组中查找数值为k的折半查找算法。请填空完善程序。 int BinSearch(int r[ ], int low,int high,int k) { int l,h,m; l= low; h= high; while ( ⑴ ) { m= ⑵ ; if (k r[m]) ⑶ ; else if (k r[m]) ⑷ ; else return m; } return 0; } 2. 以下程序功能是将数组r中,从下标first到end之间的元素进行快速排序的分区。请填空,完善程序。 int Partition(int r[ ], int first, int end) { int i,j,t; i=first; j=end; //初始化 while ( ⑸ ) { while (ij ⑹ ) j--; //右侧扫描 if (ij) { t=r[i]; r[i]=r[j]; r[j]=t; i++; //将较小记录交换到前面 } while ( ⑺ ) i++; //左侧扫描 if (ij) { t=r[i]; r[i]=r[j]; r[j]=t; j--; //将较大记录交换到后面 } } ⑻ //i为轴值记录的最终位置 } 3、以下程序是计算以rt所指向的结点为根结点的二叉树的深度算法,请填空,完善程序。 templateclass T int BiTreeT::High(BiNodeT *rt) { int lh,rh; if( ⑼ ) return 0; else { lh=High(rt-lchild); rh=High(rt-rchild); return ⑽ ; } } 三、编程题(共30分) 1.(18分)假设以不带头结点的循环链表表示队列,并且只设一个指针指向队尾元素所在的结点,但不设头指针。试设计相应的入队和出队算法。 template class T struct Node { T data; NodeT * next; }; template class T class CirLinkQueue { NodeT * rear; public: C

文档评论(0)

solow + 关注
实名认证
文档贡献者

公共营养师持证人

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

领域认证该用户于2023年05月13日上传了公共营养师

1亿VIP精品文档

相关文档