数据结构试题库(共169页).docx
《数据结构试题库(共169页).docx》由会员分享,可在线阅读,更多相关《数据结构试题库(共169页).docx(171页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上数据结构试题库一、单项选择题1. 下列程序段所代表的算法的时间复杂度为(D)。x=n;y=0;while (x=(y+1)*(y+1) y+;(A) O(n)(B)O(n 2)(C)O(log 2n)(D)O(n )2. 在一个长度为n 的以顺序结构存储的线性表中,假设在线性表的任何位置删除元素的概率相等,则删除一个元素时线性表所需移动元素的平均次数为(B ) 。(A) n2(B)(n-1)/2(C)(n+1)/2(D)n/23. 在一个栈顶指针为HS的链栈中插入一个*s结点时,应执行执行操作为( C)。(A) HS-next=s;(B)s-next=HS-next;
2、HS-next=s;(C)s-next=HS;HS=s;(D)s-next=HS;HS=HSnext;4. 假设以带头结点的循环链表表示队列Q,并且队列只设一个头指针front ,不设队列尾指针。 若要进队一个元素*s ,则在下列程序算法的空白处应添加的操作语句是(A ) 。void AddQueue(struct linkqueue Q)p=Q-front;while(p-next!=Q-front) p=p-next;(A)p-next=s;s-next=Q-front; (B)Q-front-next=s;Q-front=s; (C)s-next=p;p-next=Q-front;(D)
3、Q-front-next=s;s-next=p;5. 设高度为h 的二叉树上只有度为0 和度为 2 的结点,则此类二叉树中所包含的结点数至少为(B ) 。(A)2 h-1(B)2 h-1 +1(C)2 h-1(D)2 h-1 -36现有数据集 53,30,37,12,45,24,96,从空二叉树逐个插入数据形成二叉排序树,专心-专注-专业若希望查找此二叉树中任一结点的平均查找长度最小,则应选择下面哪个序列输入(C)。(A)45,24,53,12,37,96,30(B) 30,24,12,37,45,96,53(C) 37,24,12,30,53,45,96(D) 12,24,30,37,45,
4、53,967. 有一组数值5,12,9,20,3,用以构造哈夫曼树,则其带权路径长度WPL值为( D)。(A)93(B)96(C)123(D)1038. 已知一个有向图G 的顶点v=v1,v2,v3,v4,v5,v6,其邻接表如下图所示,根据有向图的深度优先遍历算法,从顶点 v1 出发,所得到的顶点遍历序列是( B ) 。(A)v1,v2,v3,v6,v4,v5(B)v1,v2,v3,v6,v5,v4(C)v1,v2,v5,v6,v3,v4(D)v1,v2,v5,v3,v4,v6v5v4v1v2v5v2v3v3v6v6v3v4v5v4v69. 设有 m=2 n-1 个关键字, 假设对每个关键字
5、查找的概率相等,查找失败的概率为0 ,若采用二分法查找一个关键字,则平均查找长度为(D ) 。(A)n-1(B) n-n/m(C) (n-1)-n/m(D) (n-1)+n/m10 已知一个待散列存储的线性表18,81,58,34,26,75,67,49,93,散列函数为h(k)=k%11 ,散列地址空间为010 。若采用线性探查法解决冲突,则平均查找长度为(A ) 。(A)5/3(B)13/9(C)16/9(D)3/211. 下列程序段所代表的算法的时间复杂度为(C ) 。y=n;x=1;nwhile(xnext=NULL(C)head-next=head(D)head!=NULL15. 若
6、链队列HQ中只有一个结点,则队列的头指针和尾指针满足下列条件( D)。(A) HQ-rear-next=HQ-front(B)HQ-front-next=HQ-rear-next (C)HQ-front=HQ-rear(D)HQ-front-next=HQ-rear16. 从一个栈顶指针为HS 的链栈中删除一个结点时,用x 保存被删除结点的值, 则应执行操作为(A ) 。(A) x=HS-data; HS=HS-next;(B)x=HS-data;HS-NEXT=NULL; (C)HS=HS-next;x=HS-data;(D)x=HS-data; HS=NULL;17. 一棵有n 个结点的满
7、二叉树,有m 个叶子结点,深度为h,那么 n、m 和 h满足条件(D)。(A)n=m+h(B)h+m=2n(C)m=h-1(D)n=2h-118. 一 棵左 、右子树均不为空 的二 叉树在先序线索化 后, 其空指针域数为( B ) 。(A)0(B)1(C)2(D) 不确定 有一组数值 5,12,9,20,3,用以构造哈夫曼树,则其带权路径长度WPL值为( C)。(A)49(B)96(C)103(D)1251920. 在一个 n 个结点的二叉排序树中查找一个关键字,进行关键字比较次数最大值为(A ) 。(A) n(B)n/2(C)log 2 n(D)n*log 2 n21. 已知有向图G=(V,
8、E) ,其中 V=v1,v2,v3,v4,v5,v6,则下列边集合E 中( A )所对应的有向图没有拓扑序列。(A) E=, (B) E=, (C) E=,(D) E=,22. 冒泡排序算法在最好情况下的时间复杂度为(B ) 。(A)O(log 2n)(B)O(n)(C)O(1)(D)O(n 2)23. 在下列内部排序方法中,排序时不稳定的, 而且关键字的比较次数与记录的初始排列次序无关的是(D)。(A) 快速排序(B) 冒泡排序(C) 归并排序(D) 堆排序24 已知一个待散列存储的线性表18,81,58,34,26,75,67,49,93,散列函数为(A)5/3(B)13/9(C)16/9
9、(D)3/2 下列程序段所代表的算法的时间复杂度为(D ) 。i=1;j=0;while(inext=p-next;p-next=s;(B)s-next=head;p-next=s; (C)s-next=p-next;p-next=head;(D)s-next=p-next; s-next=p;29. 已知用循环链表表示的队列长度为n,若只设头指针,则出队和入队一个元素的时间复杂度分别是(B)。(A)O(1) 和 O(1)(B)O(1) 和 O(n)(C)O(n) 和 O(1)(D)O(n)和 O(n)30. 设链队列Q 的头指针和尾指针分别为front 和 rear ,初始时队列为空,若向队
10、列插入一个元素*s ,则应执行的指针操作为(C ) 。(A)Q-front-next=s;s-next=Q-rear;Q-rear=NULL; (B)s-next=Q-front;Q-rear-next=s;Q-rear=NULL; (C)Q-rear-next=s;Q-rear=s;s-next=NULL;(D)Q-front-next=s;Q-rear=s;s-next=NULL;31. 已知一个带权图的顶点集V 和边集 G 分别为:V=1,2,3,4,5,6,7,8;E=(3,1)6 , (3,4)7 , (3,7)5 , (1,2)3 , (1,4)4 , (4,7)8 , (4,5)
11、4 , (7,8)5 , (2,6)3 ,(2,5)5, (5,8)8, (5,6)5, (8,6)6,则该图的最小生成树的权值为(C) 。 (A)24(B)29(C)30(D)3132. 当待排序的关键字个数n 很小,且初始排列为逆序时,采用下列排序方法中的( D),算法的时间复杂度最小。(A) 直接插入排序(B) 简单选择排序(C) 冒泡排序(D) 快速排序33. 对二叉排序树进行( C )遍历, 可以得到该二叉树所有结点构成的排序序列。(A) 层次(B) 前序(C) 中序(D) 后序34 已知一个长度为12 的线性表( 8, 2, 5, 7 ,12, 3, 10,4 , 1, 6, 9,
12、 11 ),并将线性表中的元素依次插入到一个原先为空的二叉排序树中去。假设查找每一个元素的概率相同,则查找该二叉树中任一结点的平均查找长度为(A)。(A)10/3(B)13/3(C)37/12(D)13/235 一组关键字序列15 ,92 ,124 ,5 , 27, 28, 18, 6 ,36 ,34 ,30 , 26 , 32,259 ,将它们用散列函数H(key)=keyMOD11按顺序散列到HASH表 HT( 0:10 )中,用链地址解决冲突。假设查找每一个元素的概率相同,则查找该HASH表中任一元素的平均查找长度为(C)。(A)3/2(B)10/7(C)11/7(D)9/736. 以数
13、据集 4 , 5 , 6, 7, 12 , 18, 10 为结点权值所构造的哈夫曼树,则其带权路径长度WPL 为(A ) 。(A)165(B)203(C)124(D)18737. 假定对线性表R0n-1 进行分块查找, 若将表均匀地分为b 块,每块含有n/b个记录;又假定表中每个记录的查找概率相等,并用顺序查找确定所在的块,若要使分块查找的平均查找长度ASL 最小,则分块数b 的值应为(B ) 。n(B)n(A)+1(C) log 2n(D) log 2 n+138. 对 n 个记录进行直接插入排序,所需的关键字比较次数的最大值和最小值分别是(C ) 。(A)n(n+1)/2和 n(B)n(n
14、-1)/2和 n-1(C) n(n+1)/2-1和 n-1(D)n 2 和 n39. 若在一个具有n 个结点的有序单链表中插入一个新结点并仍然有序,则该操作的时间复杂度是()。2(A) O(1)(B)O(n 2 )(C)O(nlog n)(D)O(n)40. 在一个头结点为head 的空循环链表中插入一个结点s,则指针s 应执行操作()。(A)head-next=s;s-next=NULL; (B)s-next=head;head-next=NULL;(C)head-next=s;s-next=head-next;(D)s-next=head;head-next=s;41. 设链队列Q 的头指
15、针和尾指针分别为front 和 rear ,队中元素个数为n(n1) , 指针 *p 指向队首元素m。若删除元素m,则应进行的指针操作为()。(A) Q-front-next=p-next(B)Q-rear=Q-front(C)Q-front=p-rear(D)Q-rear=p-next42. 假设二叉树T 中有 n 个叶子结点,且所有非叶子结点都有左、右子树,那么二叉树 T 共有()个结点。(A)2n(B)2n-1(C)2n+1(D)2n+243. 已知有向图G 的邻接矩阵如下所示,则下列序列中()不可能是图G 的拓扑序列。(A)v1,v6,v3,v4,v2,v5(B)v1,v6,v4,v3
16、,v2,v5(C)v1,v3,v2,v4,v6,v5(D)v1,v3,v6,v4,v5,v201110000000001001000001000000000011044. 已知一棵二叉树的结点数据采用顺序存储结构,数组内容如下表所示,则该二叉树的后序遍历序列为()。123456789101112131415161718192021EAFDGCJIHB (A)ACBDJEFIGH(B)ABCDJEFHGI(C)BCJDAHIGFE(D)EADCBJFGIH45. 若 T 为 n 个结点的完全二叉树,则T 的叶子结点数为()。(A)n/2(B)(n-2)/2(C)(n-1)/2(D)(n+1)/2
17、46. 有一组数值14,21,32,15,28,用以构造huffman树,则其WPL 值为()。(A)267(B)189(C)110(D)29447. 采用折半插入排序,关键字的比较次数与移动次数分别为()。(A) O(n),O(log2n)(B)O(n 2),O(log 2n)(C)O(log 2 n),O(n 2)(D)O(nlog 2 n),O(n 2 )48 假设结点序列为60,30,90,50,95,70,40,80,以此构成一棵二叉排序树,则在该二叉排序树上查找一个结点的平均查找长度为()。(A)23/8(B)11/4(C)9/2(D)449. 下面程序段的时间复杂性的量级为(D)
18、。for(i=1;i n; i+) for(j=1;j m; j+)cij=0;for(k=1;k w;k+) cij+=aik*bkj(A) O(i*j*k)(B)O(n*m*k)(C)O(n*j*k)(D)O(n*m*w)50. 在一个长度为n 的线性表中, 删除值为 x 的元素时需要比较元素和移动元素的总次数为(C)。(A) ( n+1 ) /2(B)n/2(C)n(D)n+151. 利用 3, 6, 8, 12 ,5, 7 这六个值作为叶子结点的权,生成一棵哈夫曼树, 该树的深度为(B ) 。(A)3(B)4(C)5(D)652. 一棵二叉树的广义表表示为a(b(c,d),e(,f(g
19、),则得到的层次遍历序列为( D)。(A) a,b,c,d,e,f,g(B)c,b,d,a,e,g,f(C)c,d,b,g,f,e,a(D)a,b,e,c,d,f,g53. 若长度为n 的线性表采用顺序存储结构,在其第 i 个位置插入一个新元素的算法的时间复杂度为()。(1 in+1)(A)O(0)(B)O(1)(C)O(n)(D)O(n2)54. 若在线性表中采用折半查找法查找元素,该线性表应该()。(A) 元素按值有序(B) 采用顺序存储结构(C) 元素按值有序,且采用顺序存储结构(D) 元素按值有序,且采用链式存储结构55. 已知一算术表达式的中缀形式为AB *C-D/E ,后缀形式为A
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 试题库 169
限制150内