数据结构模拟试卷(8的).docVIP

  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文档。上传文档
查看更多
数据结构模拟试卷(8的)

数据结构模拟试卷(8) 一、填空。 1.算法的健壮性是指 对于非法的输入也要能够给予正确的响应O(n) O(n) 。 3.n个数入栈,所有可能的出栈序列共有 种。 4.下面程序段的时间复杂度为 O() (n1)。 sum=1; for(i=0; sumn; i++) sum+=i; 5.若某二叉树有20个叶子节点,有30个节点仅有一个孩子,则该二叉树的总的节点数是 20+30+19=69 。 6.若以{4,5,6,7,8}作为叶子节点的权值构造哈夫曼树,则该Huffman树的根结点权值为 30 。 7.线索二叉树的左线索指向其 前驱 ,右线索指向其 后继 。 8.若含n个顶点的图形成一个环,则它的生成树可能有 n 种。 9.对于具有300个记录的文件,采用分块索引查找法查找,其中用二分查找法查找索引表,用顺序查找法查找块内元素,假定每块长度均为30个元素,则平均查找长度为 29/10+31/2=18.4 。 10.有一个有序表为{1,3,9,12,32,41,45,62,75,77,82,95,100},当二分查找值为82的结点时,经 4 次比较后查找成功。 二、设一组记录的关键字为{4,5,7,2,1,3,6},请回答相关问题: (1)按表中元素的顺序依次插入一棵初始为空的二叉排序树,画出插入完成后的二叉排序树,并求出在等概率情况下查找成功的平均查找长度。 查找成功的平均查找长度18/7?查找成功的平均查找长度? 17/7 B树:每个结点的关键字个数等于指针个数减1。 B+树:每个结点的关键字个数等于指针个数。 B+树中所有叶子结点包含了全部关键字信息,以及指向关键字记录的指针,叶子节点依关键字大小自小到大链接。非终端结点作索引,结点中含有其子树根结点的最大(最小)关键字。 四、已知记录关键字集合为(53,17,19,61,98,75,79,63,46,49),要求散列到地址区间[0,10]中,散列函数选用除留余数法(mod 11)。请回答相关问题: (1)画出形成的散列表(若产生冲突,用开放定址的线性探测再散列法解决)。 0 1 2 3 4 5 6 7 8 9 10 75 63 79 46 ? 49 17 61 19 53 98 (2)计算在等概率情况下查找成功时的平均查找长度。 18/10或1.8或9/5(2)在等概率情况下查找成功时的平均查找长度五、有7个顶点(v1,v2,v3,v4,v5,v6,v7)的有向图 的邻接矩阵如右图。请回答相关问题: (1)画出该有向图 (2)画出邻接表 (3)写出从v1出发的深度优先遍历和广度优先遍历序列(4分) 深度dfs v1 v4 v5 v7 v6 v3 v2 广度bfs v1 v4 v3 v2 v5 v6? v7 关键路径的长度为20 (1)写出相应的结构定义。 (2)编写算法。 2.判断有向图是否存在回路。若存在返回1,否则返回0。 (1)写出相应的结构定义。 (2)编写算法。 七、阅读下列函数,回答相关问题: int arrange (int a[], int 1, int h, int x) {//1和h分别为数据区的下界和上界 int i, j, t; i=1;j=h; while (ij) { while (ij a[j]=x ) j--; while (ij a[i] x ) i++; if (ij) { t=a[j];a[j]=a[i];a[i]=t;} } if (a[i]x ) return i; else return i-1; } (1调整整数数组a[]中的元素并返回分界值I,使得所有小于x的元素落在a[1…i]上,大于等于x的元素落在a[I+1…h]上b[n]中的元素进行重新排列,将所有负数均调整到数组的低下标端,将所有正数均调整到数组的高下标端,若有零值,则置于两者之间,并返回数组中零元素的个数。 int f ( int b[], int n) { int p,q; p=arrange(b,0,n-1,0); q= arrange(b,p+1,n-1,1); return q-p; } 八、数组a存储了N个整数,请回答相关问题: (1)请完善对数组a进行堆排序的程序。 void HeapAdjust(int a[ ], int h, int s) { rc=a[h]; for(j= 2*h ;

文档评论(0)

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

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

1亿VIP精品文档

相关文档