计算机考研数据结构试卷十(练习题含答案)
数据结构课程试卷10卷参考答案

苏州大学数据结构课程10卷参考答案(共 5 页)院系专业 __________一、填空题(每题3分,共30分)1、7500;6252、10883、线性表;入栈;出栈4、n2+1 ; 2k-15、hdiebjkfca6、 227、深度优先;广度优先;10;从源点到汇点路径长度之和最长的路径8、299、1; 710、wpl=(2+5)*3+(7+9+13)*2=79 。
二、应用题(每题8分,共40分)因为队列的入队和出队在顺序队列的两端进行,可能造成队列空间未用完但队列指针已经越界,从而产生虚溢出。
(2分)解决虚溢出的方法是采用循环队列。
(2分)队空条件为:q.front=q.rear (2分)队满条件为:q.front=(q.rear+1)mod m (2分)2、(1)(4(2)(2分)(3)ASL=(1+1+2+1+2+1+1+3+1+3+1)/11=17/11 (2分)3、最小生成树:(4分)邻接矩阵:1 2 3 4 5 60 10 0 0 15 1210 0 5 6 0 70 5 0 6 0 00 6 6 0 0 815 0 0 10 0 1212 7 0 8 12 0(4分)4、(1(4分)(2)R1={4,5,6,7,8,9,16,18,20}。
(2分)(3)R2={5,6,4,9,8,18,20,16,7}。
(2分)三、算法设计题(每题10 分,共30分)1、假设用带头结点的单链表作为线性表的存储结构,编写在线性表中第i个元素前插入值为x的元素的算法。
deleteinsert(la,x) /*从表la中删除值为x的元素*/linklist *la;/*la分别为linklist类型的指针变量*/{linklist *p,*q;p=la;q=p->next; (3分)while (q!=null)if (q->data=x) {p->next=q->next ;dispose(q);q=p->next;} (4分)else {p=q;q=q->next;} (3分)2、int count(t,num)bitree *t;int num;{if (t) (2分)if ((t->lchild!=null) && (t->lchild==null)||(t->lchild==null) && (t->lchild!=null)) (2分)num=num+1;count(t->lchild,num); (2分)count(t->rchild,num); (2分)return(num); (2分)} /*count */3、#define INFINIY MAX_WEIGHTV oid converttu(AdjGraph *G1,ALGraph *G2)int{i,j;LinkNode *p;G2->vernum=G1->vernum;G2->e=G1->e; (3分)for (i=0;i< G1->vernum;i++){G2->adjlist[i].vexdata=G1->vexs[i];G2->adjlist[i].first=null;}for (i=0;i< G1->vernum;i++)for (j=0;j< G1->vernum;j++)if (G1->adj[i][j]<INFINITY){p=(LinkNode *)malloc(sizeof(LinkNode)) (3分)p->weight=adj[i][j];p->adjvex=j;p->next=G2->adjlist[i].first;G2->adjlist[I].first=p;}return; (3分)}O(n2) (1分)。
十套经典数据结构试题并带答案

数据结构试卷(一)一、单选题(每题2 分,共20分)1.栈和队列的共同特点是( )。
A.只允许在端点处插入和删除元素B.都是先进后出C.都是先进先出D.没有共同点2.用链接方式存储的队列,在进行插入运算时( ).A. 仅修改头指针B. 头、尾指针都要修改C. 仅修改尾指针D.头、尾指针可能都要修改3.以下数据结构中哪一个是非线性结构?( )A. 队列B. 栈C. 线性表D. 二叉树4.设有一个二维数组A[m][n],假设A[0][0]存放位置在644(10),A[2][2]存放位置在676(10),每个元素占一个空间,问A[3][3](10)存放在什么位置?脚注(10)表示用10进制表示。
A.688 B.678 C.692 D.6965.树最适合用来表示( )。
A.有序数据元素B.无序数据元素C.元素之间具有分支层次关系的数据D.元素之间无联系的数据6.二叉树的第k层的结点数最多为( ).A.2k-1 B.2K+1 C.2K-1 D. 2k-17.若有18个元素的有序表存放在一维数组A[19]中,第一个元素放A[1]中,现进行二分查找,则查找A[3]的比较序列的下标依次为( )A. 1,2,3B. 9,5,2,3C. 9,5,3D. 9,4,2,38.对n个记录的文件进行快速排序,所需要的辅助存储空间大致为A. O(1)B. O(n)C. O(1og2n)D. O(n2)9.对于线性表(7,34,55,25,64,46,20,10)进行散列存储时,若选用H(K)=K %9作为散列函数,则散列地址为1的元素有()个,A.1 B.2 C.3 D.410.设有6个结点的无向图,该图至少应有( )条边才能确保是一个连通图。
A.5B.6C.7D.8二、填空题(每空1分,共26分)1.通常从四个方面评价算法的质量:_________、_________、_________和_________。
2.一个算法的时间复杂度为(n3+n2log2n+14n)/n2,其数量级表示为________。
数据结构试题及答案(10套最新)

单选题(每题2分,共20分)1. 1.对一个算法的评价,不包括如下(B )方面的内容。
A .健壮性和可读性B .并行性C .正确性D .时空复杂度 2.2.在带有头结点的单链表HL 中,要向表头插入一个由指针 p 指向的结点,则执行(A )。
A. p->next=HL->next; HL->next=p;B. p->next=HL; HL=p;都具有相同的(A )。
A.行号 B .列号 C .元素值 D .非零元素个数 9. 快速排序在最坏情况下的时间复杂度为(D )。
A. O(log 2n)B . O(nlog 2n)C . 0(n) D10.10. 从二叉搜索树中查找一个元素时,其时间复杂度大致为A. O(n)B. O(1)C. O(log2n) D. O(n二、运算题(每题6分,共24分)1. 1.数据结构是指数据及其相互之间的 _________________ 。
当结点之 间存在M 对N (M N)的联系时,称这种结构为 __________________________ 。
2. 2.队列的插入操作是在队列的_ _尾 ________ 行,删除操作是在队 列的 ____ 首 _____ 行。
3. 3.当用长度为N 的数组顺序存储一个栈时,假定用top==N 表示栈C. p->next=HL; p=HL; 3. 3. A. C.D. HL=p; p-> next=HL;对线性表,在下列哪种情况下应当采用链表表示? 经常需要随机地存取元素B.表中元素需要占据一片连续的存储空间一个栈的输入序列为1 2 3,4. 4.列的是(C )A. 2 3 1 C. 3 1 2 AOV 网 是一种(D ) 有向图 B .无向图 (B )经常需要进行插入和删除操作D.表中元素的个数不变则下列序列中不可能是栈的输出序B. 3 2 15. 5.6. .无向无环图 D .有向无环图 采用开放定址法处理散列表的冲突时,其平均查找长度(B.高于链接法处理冲突D .高于二分查找 7. 8. 6.A.低于链接法处理冲突.与链接法处理冲突相同7.参数。
十套数据结构试题含答案

精品文档数据结构试卷(一)一、单选题(每题 2 分,共 20 分)1.栈和队列的共同特点是( a)。
A.只允许在端点处插入和删除元素B.都是先进后出C.都是先进先出D.没有共同点2.用链接方式存储的队列,在进行插入运算时( d ).A.仅修改头指针B.头、尾指针都要修改C.仅修改尾指针D.头、尾指针可能都要修改3.以下数据结构中哪一个是非线性结构?( d )A. 队列B. 栈C. 线性表D. 二叉树4.设有一个二维数组A[m][ n],假设A[0][0]存放位置在644(10), A[2][2] 存放位置在676(10),每个元素占一个空间,问 A[3][3] (10)存放在什么位置?脚注(10) 表示用10进制表示。
cA .688B.678C. 692D.6965.树最适合用来表示( c )。
A. 有序数据元素B. 无序数据元素C. 元素之间具有分支层次关系的数据D.元素之间无联系的数据6.二叉树的第 k 层的结点数最多为 ( d ).A. 2k -1 B.2K+1 C.2K-1 D. 2 k-17.若有 18 个元素的有序表存放在一维数组A[19] 中,第一个元素放A[1] 中,现进行二分查找,则查找A[ 3]的比较序列的下标依次为 ( c d )A. 1,2,3B. 9,5, 2,3C. 9,5,3D. 9,4, 2,38.对 n 个记录的文件进行快速排序,所需要的辅助存储空间大致为cA. O(1)B. O ( n)C. O( 1og2n)D. O( n2)9.对于线性表( 7, 34, 55, 25, 64,46, 20,10)进行散列存储时,若选用H(K)=K %9 作为散列函数,则散列地址为1的元素有( c d )个,A.1B.2C. 3D. 410. 设有 6 个结点的无向图,该图至少应有( a)条边才能确保是一个连通图。
A.5B.6C.7D.8二、填空题(每空 1 分,共 26分)1.通常从四个方面评价算法的质量: ____时间正确性 _____、____占用内存 _易读性 ____、____复杂度 __强壮性 ___和 _____准确度 _ 高效率 ___。
十套数据结构试题及答案

数据结构试卷(一) (1)数据结构试卷(二) (4)数据结构试卷(三) (6)数据结构试卷(四) (8)数据结构试卷(五) (11)数据结构试卷(六) (14)数据结构试卷(七) (16)数据结构试卷(八) (18)数据结构试卷(九) (20)数据结构试卷(十) ......... 23 数据结构试卷(一)参考答案.. 26 数据结构试卷(二)参考答案.. 27 数据结构试卷(三)参考答案.. 28 数据结构试卷(四)参考答案.. 30 数据结构试卷(五)参考答案.. 32 数据结构试卷(六)参考答案.. 33 数据结构试卷(七)参考答案.. 36 数据结构试卷(八)参考答案.. 37 数据结构试卷(九)参考答案.. 38 数据结构试卷(十)参考答案.. 39数据结构试卷(一)一、单选题(每题2 分,共20分)1.栈和队列的共同特点是( )。
A.只允许在端点处插入和删除元素B.都是先进后出C.都是先进先出D.没有共同点2.用链接方式存储的队列,在进行插入运算时( ).A. 仅修改头指针B. 头、尾指针都要修改C. 仅修改尾指针D.头、尾指针可能都要修改3.以下数据结构中哪一个是非线性结构?( )A. 队列B. 栈C. 线性表D. 二叉树4.设有一个二维数组A[m][n],假设A[0][0]存放位置在644(10),A[2][2]存放位置在676(10),每个元素占一个空间,问A[3][3](10)存放在什么位置?脚注(10)表示用10进制表示。
A.688 B.678 C.692 D.6965.树最适合用来表示( )。
A.有序数据元素B.无序数据元素C.元素之间具有分支层次关系的数据D.元素之间无联系的数据6.二叉树的第k层的结点数最多为( ).A.2k-1 B.2K+1 C.2K-1 D. 2k-17.若有18个元素的有序表存放在一维数组A[19]中,第一个元素放A[1]中,现进行二分查找,则查找A[3]的比较序列的下标依次为( )A. 1,2,3B. 9,5,2,3C. 9,5,3D. 9,4,2,38.对n个记录的文件进行快速排序,所需要的辅助存储空间大致为A. O(1)B. O(n)C. O(1og2n)D. O(n2)9.对于线性表(7,34,55,25,64,46,20,10)进行散列存储时,若选用H(K)=K %9作为散列函数,则散列地址为1的元素有()个,A.1 B.2 C.3 D.410.设有6个结点的无向图,该图至少应有( )条边才能确保是一个连通图。
十套数据结构试题及答案

数据结构试卷(一)一、单选题(每题2 分,共20分)1.栈和队列的共同特点是( )。
A.只允许在端点处插入和删除元素B.都是先进后出C.都是先进先出D.没有共同点2.用链接方式存储的队列,在进行插入运算时( ).A. 仅修改头指针B. 头、尾指针都要修改C. 仅修改尾指针D.头、尾指针可能都要修改3.以下数据结构中哪一个是非线性结构?( )A. 队列B. 栈C. 线性表D. 二叉树4.设有一个二维数组A[m][n],假设A[0][0]存放位置在644(10),A[2][2]存放位置在676(10),每个元素占一个空间,问A[3][3](10)存放在什么位置?脚注(10)表示用10进制表示。
A.688 B.678 C.692 D.6965.树最适合用来表示( )。
A.有序数据元素B.无序数据元素C.元素之间具有分支层次关系的数据D.元素之间无联系的数据6.二叉树的第k层的结点数最多为( ).A.2k-1 B.2K+1 C.2K-1 D. 2k-17.若有18个元素的有序表存放在一维数组A[19]中,第一个元素放A[1]中,现进行二分查找,则查找A[3]的比较序列的下标依次为( )A. 1,2,3B. 9,5,2,3❌C. 9,5,3 D. 9,4,2,38.对n个记录的文件进行快速排序,所需要的辅助存储空间大致为A. O(1)❌B. O(n)C. O(1og2n)D. O(n2)快速排序在系统内部需要一个栈来实现递归。
若每次划分比较均匀,则其递归树的高度为O(logn)。
最坏情况下,递归树的高度为O(n),所需的栈空间为O(n)。
9.对于线性表(7,34,55,25,64,46,20,10)进行散列存储时,若选用H(K)=K %9作为散列函数,则散列地址为1的元素有()个,A.1 B.2 C.3 D.410.设有6个结点的无向图,该图至少应有( )条边才能确保是一个连通图。
A.5B.6C.7D.8二、填空题(每空1分,共26分)1.通常从四个方面评价算法的质量:正确性、易读性、强壮性和高效率。
十套数据结构试题及答案
数据结构试卷(一) ..................... 0. 数据结构试卷(二) .......... 3 数据结构试卷(三) .......... 5 数据结构试卷(四) .......... 8 数据结构试卷(五) .......... 11 数据结构试卷(六) .......... 14 数据结构试卷(七) .......... 16 数据结构试卷(八) .......... 18 数据结构试卷(九) .......... 20 数据结构试卷(十) . (23)数据结构试卷(一)参考答案 ....... 26 数据结构试卷(二)参考答案 ....... 27 数据结构试卷(三)参考答案 ....... 28 数据结构试卷(四)参考答案 ....... 30 数据结构试卷(五)参考答案 ....... 32 数据结构试卷(六)参考答案 ....... 34 数据结构试卷(七)参考答案 ....... 36 数据结构试卷(八)参考答案 ....... 37 数据结构试卷(九)参考答案 ....... 38 数据结构试卷(十)参考答案 . (39)数据结构试卷(一)A. O(1)B. O ( n )C. O (1og 2n )D. O (n2)9. 对于线性表( 7, 34, 55, 25, 64, 46, 20, 10)进行散列存储时,若选用 H (K ) =K %9作为散列函数,则散列地址为 1 的元素有( )个, A . 1 B .2 C .3 D .410. 设有 6 个结点的无向图,该图至少应有 ( ) 条边才能确保是一个连通图。
A.5B.6C.7D.8二、填空题(每空 1分,共 26 分) 1. 通常从四个方面评价算法的质量: ____________ 、 _________ 、 __________ 和 _________ 。
3222. 一个算法的时间复杂度为(n +n log 2n +14n )/ n ,其数量级表示为 ________ 。
计算机数据结构考研真题及其答案
第1章绪论一、选择题1. 算法的计算量的大小称为计算的();A.效率 B. 复杂性 C. 现实性 D. 难度2. 算法的时间复杂度取决于();A.问题的规模 B. 待处理数据的初态 C. A和B3.计算机算法指的是(),它必须具备()这三个特性;(1)A.计算方法 B. 排序方法 C. 解决问题的步骤序列 D. 调度方法(2)A.可执行性、可移植性、可扩充性 B. 可执行性、确定性、有穷性C. 确定性、有穷性、稳定性D. 易读性、稳定性、安全性4.一个算法应该是();A.程序 B.问题求解步骤的描述 C.要满足五个基本特性 D.A和C 5. 下面关于算法说法错误的是();A.算法最终必须由计算机程序实现B.为解决某问题的算法同为该问题编写的程序含义是相同的C. 算法的可行性是指指令不能有二义性D. 以上几个都是错误的6. 下面说法错误的是();(1)算法原地工作的含义是指不需要任何额外的辅助空间;(2)在相同的规模n下,复杂度O(n)的算法在时间上总是优于复杂度O(2n)的算法;(3)所谓时间复杂度是指最坏情况下,估算算法执行时间的一个上界;(4)同一个算法,实现语言的级别越高,执行效率就越低A.(1) B.(1),(2) C.(1),(4) D.(3)7.从逻辑上可以把数据结构分为()两大类;A.动态结构、静态结构 B.顺序结构、链式结构C.线性结构、非线性结构 D.初等结构、构造型结构8.以下与数据的存储结构无关的术语是();A.循环队列 B. 链表 C. 哈希表 D. 栈9.以下数据结构中,哪一个是线性结构();A.广义表 B. 二叉树 C. 稀疏矩阵 D. 串10.以下那一个术语与数据的存储结构无关?();A.栈 B. 哈希表 C. 线索树 D. 双向链表11.在下面的程序段中,对x的赋值语句的频度为();FOR i:=1 TO n DOFOR j:=1 TO n DOx:=x+1;A. O(2n) B.O(n) C.O(n2) D.O(log2n)12.程序段 FOR i:=n-1 DOWNTO 1 DOFOR j:=1 TO i DOIF A[j]>A[j+1]THEN A[j]与A[j+1]对换;其中 n为正整数,则最后一行的语句频度在最坏情况下是();A. O(n)B. O(nlogn)C. O(n3)D. O(n2)13.以下哪个数据结构不是多型数据类型();A.栈 B.广义表 C.有向图 D.字符串14.以下数据结构中,()是非线性数据结构;A.树 B.字符串 C.队 D.栈15. 下列数据中,()是非线性数据结构;A.栈 B. 队列 C. 完全二叉树 D. 堆16.连续存储设计时,存储单元的地址();A.一定连续 B.一定不连续 C.不一定连续 D.部分连续,部分不连续17.以下属于逻辑结构的是();A.顺序表 B. 哈希表 C.有序表 D. 单链表二、判断题1. 数据元素是数据的最小单位。
十套数据结构试题和答案
数据结构试卷(一)一、单选题(每题2 分,共20分)1.栈和队列的共同特点是( )。
A.只允许在端点处插入和删除元素B.都是先进后出C.都是先进先出D.没有共同点2.用链接方式存储的队列,在进行插入运算时( ).A. 仅修改头指针B. 头、尾指针都要修改C. 仅修改尾指针D.头、尾指针可能都要修改3.以下数据结构中哪一个是非线性结构?( )A. 队列B. 栈C. 线性表D. 二叉树4.设有一个二维数组A[m][n],假设A[0][0]存放位置在644(10),A[2][2]存放位置在676(10),每个元素占一个空间,问A[3][3](10)存放在什么位置?脚注(10)表示用10进制表示。
A.688 B.678 C.692 D.6965.树最适合用来表示( )。
A.有序数据元素B.无序数据元素C.元素之间具有分支层次关系的数据D.元素之间无联系的数据6.二叉树的第k层的结点数最多为( ).A.2k-1 B.2K+1 C.2K-1 D. 2k-17.若有18个元素的有序表存放在一维数组A[19]中,第一个元素放A[1]中,现进行二分查找,则查找A[3]的比较序列的下标依次为( )A. 1,2,3B. 9,5,2,3C. 9,5,3D. 9,4,2,38.对n个记录的文件进行快速排序,所需要的辅助存储空间大致为A. O(1)B. O(n)C. O(1og2n)D. O(n2)9.对于线性表(7,34,55,25,64,46,20,10)进行散列存储时,若选用H(K)=K %9作为散列函数,则散列地址为1的元素有()个,A.1 B.2 C.3 D.410.设有6个结点的无向图,该图至少应有( )条边才能确保是一个连通图。
A.5B.6C.7D.8二、填空题(每空1分,共26分)1.通常从四个方面评价算法的质量:_________、_________、_________和_________。
2.一个算法的时间复杂度为(n3+n2log2n+14n)/n2,其数量级表示为________。
十套数据结构试题及答案
数据结构试卷(一) 1数据结构试卷(二) 4 数据结构试卷(三) 6 数据结构试卷(四) 8 数据结构试卷(五) 11 数据结构试卷(六) 14 数据结构试卷(七) 16 数据结构试卷(八) 18 数据结构试卷(九) 20 数据结构试卷(十)23数据结构试卷(一)参考答案 (26)数据结构试卷(二)参考答案 ............ 27 数据结构试卷(三)参考答案 ............ 28 数据结构试卷(四)参考答案 ............ 30 数据结构试卷(五)参考答案 ............ 32 数据结构试卷(六)参考答案 ........... 33 数据结构试卷(七)参考答案 ............ 36 数据结构试卷(八)参考答案 ........... 37 数据结构试卷(九)参考答案 ........... 38 数据结构试卷(十)参考答案 (39)数据结构试卷(一)、单选题(每题 2分,共20分)1.栈和队列的共同特点是()。
A. 只允许在端点处插入和删除元素B. 都是先进后出C. 都是先进先出D.没有共同点2.用链接方式存储的队列,在进行插入运算时().A. 仅修改头指针B. 头、尾指针都要修改C. 仅修改尾指针D.头、尾指针可能都要修改3.以下数据结构中哪一个是非线性结构?()A.队列B.栈C.线性表D.二叉树4.设有一个二维数组 A[m][ n],假设 A[0][0]存放位置在 644(10),A[2][2]存放位置在676(10),每个元素占一个空间,问A[3][3](10)存放在什么位置?脚注(10)表示用10进制表示。
分查找,则查找 A : 3]的比较序列的下标依次为()A. 1 , 2, 3B. 9 , 5, 2, 3C. 9, 5, 3D. 9 , 4, 2, 3A . 688B . 6785.树最适合用来表示()。
A.有序数据元素C.元素之间具有分支层次关系的数据 6. 二叉树的第k 层的结点数最多为().kA . 2 -1 B.2K+1 C.2K-1C . 692D . 696B.无序数据元素D.元素之间无联系的数据D. 2k-17. 若有18个元素的有序表存放在一维数组A[19]中,第一个元素放 A[1]中,现进行二8.对n个记录的文件进行快速排序,所需要的辅助存储空间大致为B. O ( n)C. O (1og2n)D. O ( n2)A. O (1)9. 对于线性表(7, 34, 55, 25, 64, 46, 20, 10)进行散列存储时,若选用 H (K ) =K %9作为散列函数,则散列地址为 1的元素有( )个, A . 1 B . 2 C . 3 D . 410.设有6个结点的无向图,该图至少应有 ()条边才能确保是一个连通图。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
计算机考研数据结构试卷十(练习题含答案)共25套适用于计算机考研数据结构系统练习(PS:其他正在整理,敬请期待)数据结构试卷10一、选择题1.下列程序段的时间复杂度为()。
i=0,s=0;while (s(A) O(n1/2) (B) O(n1/3) (C) O(n) (D) O(n2)2.设某链表中最常用的操作是在链表的尾部插入或删除元素,则选用下列()存储方式最节省运算时间。
(A) 单向链表(B) 单向循环链表(C) 双向链表(D) 双向循环链表3.设指针q指向单链表中结点A,指针p指向单链表中结点A的后继结点B,指针s指向被插入的结点X,则在结点A和结点B插入结点X的操作序列为()。
(A) s->next=p->next;p->next=-s;(B) q->next=s; s->next=p;(C) p->next=s->next;s->next=p;(D) p->next=s;s->next=q;4.设输入序列为1、2、3、4、5、6,则通过栈的作用后可以得到的输出序列为()。
(A) 5,3,4,6,1,2 (B) 3,2,5,6,4,1(C) 3,1,2,5,4,6 (D) 1,5,4,6,2,35.设有一个10阶的下三角矩阵A(包括对角线),按照从上到下、从左到右的顺序存储到连续的55个存储单元中,每个数组元素占1个字节的存储空间,则A[5][4]地址与A[0][0]的地址之差为()。
(A) 10 (B) 19 (C) 28 (D) 556.设一棵m叉树中有N1个度数为1的结点,N个度数为2的结点,……,Nm个度数为m的结点,则该树中共有()个叶子结点。
(A) ∑=-miiNi1)1((B) ∑=miiN1(C) ∑=miiN2(D) ∑=-+iiNi2)1(17. 二叉排序树中左子树上所有结点的值均()根结点的值。
(A) < (B) > (C) = (D) !=8. 设一组权值集合W=(15,3,14,2,6,9,16,17),要求根据这些权值集合构造一棵哈夫曼树,则这棵哈夫曼树的带权路径长度为()。
(A) 129 (B) 219 (C) 189 (D) 2299. 设有n个关键字具有相同的Hash函数值,则用线性探测法把这n个关键字映射到HASH表中需要做()次线性探测。
(A) n2(B) n(n+1) (C) n(n+1)/2 (D) n(n-1)/210.设某棵二叉树中只有度数为0和度数为2的结点且度数为0的结点数为n,则这棵二叉中共有()个结点。
(A) 2n (B) n+l (C) 2n-1 (D) 2n+l11.设一组初始记录关键字的长度为8,则最多经过()趟插入排序可以得到有序序列。
(A) 6 (B) 7 (C) 8 (D) 912.设一组初始记录关键字序列为(Q,H,C,Y,P,A,M,S,R,D,F,X),则按字母升序的第一趟冒泡排序结束后的结果是()。
(A) F,H,C,D,P,A,M,Q,R,S,Y,X(B) P,A,C,S,Q,D,F,X,R,H,M,Y(C) A,D,C,R,F,Q,M,S,Y,P,H,X(D) H,C,Q,P,A,M,S,R,D,F,X,Y二、填空题1.设需要对5个不同的记录关键字进行排序,则至少需要比较_____________次,至多需要比较_____________次。
2.快速排序算法的平均时间复杂度为____________,直接插入排序算法的平均时间复杂度为___________。
3.设二叉排序树的高度为h,则在该树中查找关键字key最多需要比较_________次。
4.设在长度为20的有序表中进行二分查找,则比较一次查找成功的结点数有_________个,比较两次查找成功有结点数有_________个。
5.设一棵m叉树脂的结点数为n,用多重链表表示其存储结构,则该树中有_________个空指针域。
6.设指针变量p指向单链表中结点A,则删除结点A的语句序列为:q=p->next;p->data=q->data;p->next=___________;feee(q);7.数据结构从逻辑上划分为三种基本类型:___________、__________和___________。
8.设无向图G中有n个顶点e条边,则用邻接矩阵作为图的存储结构进行深度优先或广度优先遍历时的时间复杂度为_________;用邻接表作为图的存储结构进行深度优先或广度优先遍历的时间复杂度为_________。
9.设散列表的长度为8,散列函数H(k)=k % 7,用线性探测法解决冲突,则根据一组初始关键字序列(8,15,16,22,30,32)构造出的散列表的平均查找长度是________。
10.设一组初始关键字序列为(38,65,97,76,13,27,10),则第3趟冒泡排序结束后的结果为_____________________。
11.设一组初始关键字序列为(38,65,97,76,13,27,10),则第3趟简单选择排序后的结果为______________________。
12.设有向图G中的有向边的集合E={<1,2>,<2,3>,<1,4>,<4,5>,<5,3>,<4,6>,<6,5>},则该图的一个拓扑序列为_________________________。
13.下面程序段的功能是建立二叉树的算法,请在下划线处填上正确的内容。
typedef struct node{int data;struct node *lchild;________________;}bitree;void createbitree(bitree *&bt){scanf(“%c”,&ch);if(ch=='#') ___________;else{ bt=(bitree*)malloc(sizeof(bitree));bt->data=ch;___ _____;createbitree(bt->rchild);}//else}14.下面程序段的功能是利用从尾部插入的方法建立单链表的算法,请在下划线处填上正确的内容。
typedef struct node{int data;struct node *next;} lklist;void lklistcreate(_____________ *&head ){for (i=1;i<=n;i++){p=(lklist *)malloc(sizeof(lklist));scanf(“%d”,&(p->data));p->next=0;if(i==1) head=q=p;else {q->next=p;____________;}//else}//for}三、算法设计题1.设计在链式存储结构上合并排序的算法。
2.设计在二叉排序树上查找结点X的算法。
3.设关键字序列(k1,k2,…,kn-1)是堆,设计算法将关键字序列(k1,k2,…,kn-1,x)调整为堆。
答案一、选择题1.A 2.D 3.B 4.B 5.B6.D 7.A 8.D 9.D 10.C11.B 12.D二、填空题1.4,102.O(nlog2n),O(n2)3.n4.1,25.n(m-1)+16.q->next7.线性结构,树型结构,图型结构8.O(n2),O(n+e)9.8/310.(38,13,27,10,65,76,97)11.(10,13,27,76,65,97,38)12.12465313.struct node *rchild,bt=0,createbitree(bt->lchild)14.lklist,q=p三、算法设计题1.设计在链式存储结构上合并排序的算法。
void mergelklist(lklist *ha,lklist *hb,lklist *&hc) {lklist *s=hc=0;while(ha!=0 && hb!=0){if(ha->datadata){if(s==0) hc=s=ha;else {s->next=ha;s=ha;}//elseha=ha->next;}//ifelse {if(s==0) hc=s=hb;else {s->next=hb;s=hb;}//elsehb=hb->next;}//elseif(ha==0) s->next=hb;else s->next=ha;}//while}2.设计在二叉排序树上查找结点X的算法。
bitree *bstsearch1(bitree *t, int key){bitree *p=t;while(p!=0){if (p->key==key) return(p); else if (p->key>key)p=p->lchild; else p=p->rchild;}//whilereturn(0);}3.设关键字序列(k1,k2,…,kn-1)是堆,设计算法将关键字序列(k 1,k2,…,kn-1,x)调整为堆。
void adjustheap(int r[ ],int n) { int j=n,i=j/2,temp=r[j-1];while (i>=1){if (temp>=r[i-1]) break;else{r[j-1]=r[i-1];j=i; i=i/2;}//else}//whiler[j-1]=temp; }。