- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 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)