[考研类试卷]计算机专业基础综合(数据结构)模拟试卷6及答案与解析.doc
《[考研类试卷]计算机专业基础综合(数据结构)模拟试卷6及答案与解析.doc》由会员分享,可在线阅读,更多相关《[考研类试卷]计算机专业基础综合(数据结构)模拟试卷6及答案与解析.doc(30页珍藏版)》请在麦多课文档分享上搜索。
1、计算机专业基础综合(数据结构)模拟试卷 6 及答案与解析一、单项选择题1-40 小题,每小题 2 分,共 80 分。下列每题给出的四个选项中,只有一个选项是最符合题目要求的。1 若查找每个记录的概率均等,则在具有 n 个记录的连续顺序文件中采用顺序查找法查找一个记录,其平均查找长度 ASL 为( )。(A)(n 1)2(B) n2(C) (n+1)2(D)n1 顺序查找法适用于查找顺序存储或链式存储的线性表,平均比较次数为( (1) ),二分法查找只适用于查找顺序存储的有序表,平均比较次数为( (2) )。在此假定N 为线性表中结点数,且每次查找都是成功的。2 (1)(A)N+1(B) 2lo
2、g2N(C) log2N(D)N23 (2)(A)N+1(B) 2log2N(C) log2N(D)N24 适用于折半查找的表的存储方式及元素排列要求为( )。(A)链接方式存储,元素无序(B)链接方式存储,元素有序(C)顺序方式存储,元素无序(D)顺序方式存储,元素有序5 具有 12 个关键字的有序表,折半查找的平均查找长度为( )。(A)31(B) 4(C) 25(D)56 折半查找的时间复杂性为( )。(A)O(n 2)(B) O(n)(C) O(nlog2n)(D)O(log 2n)7 当采用分块查找时,数据的组织方式为( )。(A)数据分成若干块,每块内数据有序(B)数据分成若干块,
3、每块内数据不必有序,但块间必须有序,每块内最大(或最小)的数据组成索引块(C)数据分成若干块,每块内数据有序,每块内最大(或最小)的数据组成索引块(D)数据分成若干块,每块(除最后一块外)中数据个数需相同8 下面函数的功能是实现分块查找,空白处应该添加的内容是( )。int BlkSearch(int*nz,int key,int block ,int BLK,int len)int i;block=block1:if(lenlen)BLK=len;for(i=block*BLK;illink ,flag) ; 中序遍历左子树if(pre=null)pre=t; 中序遍历的第一个结点不必判断e
4、lse if(pre 一datadata)pre=t; 前驱指针指向当前结点else flag=false; 不是二叉排序树JudgeBST(t 一rlink, flag); 中序遍历右子树本题的另一算法是依照定义,二叉排序树的左右子树都是二叉排序树,根结点的值大于左子树中所有值而小于右子树中所有值,即根结点大于左子树的最大值而小于右子树的最小值。算法如下:int JudgeBST(BTree t)判断二叉树 t 是否是二叉排序树,若是,返回 true,否则,返回 falseif(t=null)return true;if(JudgeBST(t 一llink) 否则将其插入第 i 个集合if(
5、iidk)printf(” 无第d 个集合n”,i);exit(0): if(i=1)first=0; first 指向第 i 个集合在数据表的首址 else first=idai1+1; last=idai; last 是第i 个集合在数据表中的末址 for(j=first;jidAi;j-)t 查找失败,将 x 插入数据表 Rj+1=Rj; 元素后移 Rj+1=x ; 将 x 插入到原第 i 个集合最后一个元素之后 for(j=i;jk;j+)idaj+; 修改索引表中各集合最后一个元素的下标 由于各集合元素个数不等,各块长度不等且块间无序,索引表中用数组表示,数组中元素值是各集合最后一个
6、元素在数据表中的下标。按本算法插入(2,112)和(1, 53) ,数据表前后状态如下:插入前,索引表中 a 数组的内容是 3,6,12,插入后修改为 4,8,14。【知识模块】 数据结构27 【正确答案】 (1)非递归建立二叉排序树,在二叉排序树上插入的结点都是叶子结点。typedef struct nodeElemtype data;struct node*LLINK,*RLINK;node*BiTree:void Create_BST(BiTree bst,datatype K,int n)以存储在数组 K 中的 n 个关键字,建立一棵初始为空的二又排序树int i:BiTree P,
7、f:for(i=1;idataRLINK; f 是 P 的双亲else if(p 一dataKi)f=P;P=p 一LLINK ;S=(BiTree)malloc(sizeof(BiNode);申请结点空间s-data=Ki; s-LLINK=null ; s 一RLINK=null ;if(f=null)bst:S ; 根结点else if(S-datadata)f-LLINK=S; 左子女else f 一RLINK=s: 右子树根结点的值大于等于根结点的值(2)本题要求输出遍历二叉排序树的嵌套括号表示。其算法思想是,若二叉排序树非空,则输出根结点,再输出其左右子树。在输出其左右子树前,要输
8、出左括号,在输出其右子树前要输出逗号,在输出其右子树后要输出右括号,在左右子树均空情况下,则不输出括号。void Print(BiTree t) 以嵌套括号表示结构打印二叉排序树if(t!=null)printf(t 一data) ; 打印根结点值if(t 一LLINK |t 一LLINK); 左子女和右子女中至少有一个不空printf(”(”); 输出左括号Print(t 一LLINK)i 输出左子树的嵌套括号表示if(t 一RLINK)printf(” ,”); 若右子树不空,输出逗号Print(t 一RLINK) ; 输出右子树的嵌套括号表示printf(”)”); 输出右括号【知识模块
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
2000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 考研 试卷 计算机专业 基础 综合 数据结构 模拟 答案 解析 DOC
