数据结构本科武汉理工大学在线作业.docx
《数据结构本科武汉理工大学在线作业.docx》由会员分享,可在线阅读,更多相关《数据结构本科武汉理工大学在线作业.docx(17页珍藏版)》请在冰豆网上搜索。
数据结构本科武汉理工大学在线作业
数据结构(本科)武汉理工大学在线作业
一、判断(共计40分,每题2.5分)
1、快速排序是排序算法中平均性能最好的一种排序。
()
A. 正确
B. 错误
答案:
【A】
2、调用一次深度优先遍历可以访问到图中的所有顶点。
()
A. 正确
B. 错误
答案:
【B】
3、对连通图进行深度优先遍历可以访问到该图中的所有顶点。
()
A. 正确
B. 错误
答案:
【A】
4、线性表中的所有元素都有一个前驱元素和后继元素。
()
A. 正确
B. 错误
答案:
【B】
5、设一棵二叉树的先序序列和后序序列,则能够唯一确定出该二叉树的形状。
()
A. 正确
B. 错误
答案:
【B】
6、先序遍历一棵二叉排序树得到的结点序列不一定是有序的序列。
()
A. 正确
B. 错误
答案:
【A】
7、不论线性表采用顺序存储结构还是链式存储结构,删除值为X的结点的时间复杂度均为O(n)。
()
A. 正确
B. 错误
答案:
【A】
8、满二叉树一定是完全二叉树,完全二叉树不一定是满二叉树。
()
A. 正确
B. 错误
答案:
【A】
9、子串“ABC”在主串“AABCABCD”中的位置为2。
()
A. 正确
B. 错误
答案:
【A】
10、非空的双向循环链表中任何结点的前驱指针均不为空。
()
A. 正确
B. 错误
答案:
【A】
11、分块查找的平均查找长度不仅与索引表的长度有关,而且与块的长度有关。
()
A. 正确
B. 错误
答案:
【A】
12、线性表的顺序存储结构比链式存储结构更好。
()
A. 正确
B. 错误
答案:
【B】
13、向二叉排序树中插入一个结点需要比较的次数可能大于该二叉树的高度。
()
A. 正确
B. 错误
答案:
【B】
14、层次遍历初始堆可以得到一个有序的序列。
()
A. 正确
B. 错误
答案:
【B】
15、冒泡排序在初始关键字序列为逆序的情况下执行的交换次数最多。
()
A. 正确
B. 错误
答案:
【A】
16、设初始记录关键字基本有序,则快速排序算法的时间复杂度为O(nlog2n)。
()
A. 正确
B. 错误
答案:
【B】
二、单选(共计60分,每题2.5分)
17、在二叉排序树中插入一个关键字值的平均时间复杂度为()。
A. O(n)
B. O(1og2n)
C. O(nlog2n)
D. O(n2)
答案:
【B】
18、设有序顺序表中有n个数据元素,则利用二分查找法查找数据元素X的最多比较次数不超过()。
A. log2n+1
B. log2n-1
C. log2n
D. log2(n+1)
答案:
【A】
19、设用邻接矩阵A表示有向图G的存储结构,则有向图G中顶点i的入度为()。
A. 第i行非0元素的个数之和
B. 第i列非0元素的个数之和
C. 第i行0元素的个数之和
D. 第i列0元素的个数之和
答案:
【B】
20、对n个记录的文件进行快速排序,所需要的辅助存储空间大致为()
A. O
(1)
B. O(n)
C. O(1og2n)
D. O(n2)
答案:
【C】
21、用链接方式存储的队列,在进行插入运算时()
A. 仅修改头指针
B. 头、尾指针都要修改
C. 仅修改尾指针
D. 头、尾指针可能都要修改
答案:
【D】
22、设某数据结构的二元组形式表示为A=(D,R),D={01,02,03,04,05,06,07,08,09},R={r},r={<01,02>,<01,03>,<01,04>,<02,05>,<02,06>,<03,07>,<03,08>,<03,09>},则数据结构A是()。
A. 线性结构
B. 树型结构
C. 物理结构
D. 图型结构
答案:
【B】
23、以下数据结构中哪一个是非线性结构?
()
A. 队列
B. 栈
C. 线性表
D. 二叉树
答案:
【D】
24、下列排序算法中时间复杂度不受数据初始状态影响,恒为O(n2)的是
A. 堆排序
B. 冒泡排序
C. 直接选择排序
D. 快速排序
答案:
【C】
25、设顺序线性表中有n个数据元素,则删除表中第i个元素需要移动()个元素。
A. n-i
B. n+l-i
C. n-1-i
D. i
答案:
【A】
26、设指针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
答案:
【B】
27、设一棵完全二叉树中有65个结点,则该完全二叉树的深度为()。
A. 8
B. 7
C. 6
D. 5
答案:
【B】
28、设二叉排序树中有n个结点,则在二叉排序树的平均查找长度为()。
A. O
(1)
B. O(log2n)
C. O(nlog2n)
D. O(n2)
答案:
【B】
29、设输入序列1、2、3、…、n经过栈作用后,输出序列中的第一个元素是n,则输出序列中的第i个输出元素是()。
A. n-i
B. n-1-i
C. n+l-i
D. 不能确定
答案:
【C】
30、树最适合用来表示()。
A. 有序数据元素
B. 无序数据元素
C. 元素之间具有分支层次关系的数据
D. 元素之间无联系的数据
答案:
【C】
31、下列各种排序算法中平均时间复杂度为O(n2)是()。
A. 快速排序
B. 堆排序
C. 归并排序
D. 冒泡排序
答案:
【D】
32、设有6个结点的无向图,该图至少应有()条边才能确保是一个连通图。
A. 5
B. 6
C. 7
D. 8
答案:
【A】
33、设某链表中最常用的操作是在链表的尾部插入或删除元素,则选用下列()存储方式最节省运算时间。
A. 单向链表
B. 单向循环链表
C. 双向链表
D. 双向循环链表
答案:
【D】
34、设散列表中有m个存储单元,散列函数H(key)=key%p,则p最好选择()。
A. 小于等于m的最大奇数
B. 小于等于m的最大素数
C. 小于等于m的最大偶数
D. 小于等于m的最大合数
答案:
【B】
35、在二叉排序树中插入一个结点的时间复杂度为()。
A. O
(1)
B. O(n)
C. O(log2n)
D. O(n2)
答案:
【C】
36、()是线性表。
A. (1,2,3,…)
B. {a,b,c,d,e}
C. (1,3,5,7)
D. {‘A’,’B’,’C’}
答案:
【C】
37、设某完全无向图中有n个顶点,则该完全无向图中有()条边。
A. n(n-1)/2
B. n(n-1)
C. n2
D. n2-1
答案:
【A】
38、设某无向图有n个顶点,则该无向图的邻接表中有()个表头结点。
A. 2n
B. n
C. n/2
D. n(n-1)
答案:
【B】
39、设有序表中有1000个元素,则用二分查找查找元素X最多需要比较()次。
A. 25
B. 10
C. 7
D. 1
答案:
【B】
40、设二叉排序树上有n个结点,则在二叉排序树上查找结点的平均时间复杂度为()。
A. O(n)
B. O(n2)
C. O(nlog2n)
D. O(1og2n)
答案:
【D】
41、设一组初始记录关键字序列为(25,50,15,35,80,85,20,40,36,70),其中含有5个长度为2的有序子表,则用归并排序的方法对该记录关键字序列进行一趟归并后的结果为()。
A. 15,25,35,50,20,40,80,85,36,70
B. 15,25,35,50,80,20,85,40,70,36
C. 15,25,35,50,80,85,20,36,40,70
D. 15,25,35,50,80,20,36,40,70,85
答案:
【A】
42、设输入序列是1、2、3、……、n,经过栈的作用后输出序列的第一个元素是n,则输出序列中第i个输出元素是()。
A. n-i
B. n-1-i
C. n+1-i
D. 不能确定
答案:
【C】
43、设输入序列为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,3
答案:
【B】
44、设某哈夫曼树中有199个结点,则该哈夫曼树中有()个叶子结点。
A. 99
B. 100
C. 101
D. 102
答案:
【B】
45、设一棵二叉树的深度为k,则该二叉树中最多有()个结点。
A. 2k-1
B. 2k
C. 2k-1
D. 2k-1
答案:
【D】
46、设一棵三叉树中有2个度数为1的结点,2个度数为2的结点,2个度数为3的结点,则该三叉树中有()个度数为0的结点。
A. 5
B. 6
C. 7
D. 8
答案:
【C】
47、设某强连通图中有n个顶点,则该强连通图中至少有()条边。
A. n(n-1)
B. n+1
C. n
D. n(n+1)
答案:
【C】
48、算法必须具备输入、输出和
A. 计算方法
B. 排序方法
C. 解决问题的有限运算步骤
D. 程序设计方法
答案:
【C】
49、图G的某一最小生成树的代价一定小于其他生成树的代价
A. 一定是
B. 肯定不是
C. 不一定是
D. 都不对
答案:
【C】
50、设一棵m叉树中度数为0的结点数为N0,度数为1的结点数为Nl,……,度数为m的结点数为Nm,则N0=()。
A. Nl+N2+……+Nm
B. l+N2+2N3+3N4+……+(m-1)Nm
C. N2+2N3+3N4+……+(m-1)Nm
D. 2Nl+3N2+……+(m+1)Nm
答案:
【B】
51、下面程序的时间复杂度为()
for(i=1,s=0;i<=n;i++){t=1;for(j=1;j<=i;j++)t=t*j;s=s+t;}
A. O(n)
B. O(n2)
C. O(n3)
D. O(n4)
答案:
【B】
52、函数substr(“DATASTRUCTURE”,5,9)的返回值为()。
A. “STRUCTURE”
B. “DATA”
C. “ASTRUCTUR”
D. “DATASTRUCTURE”
答案:
【A】
53、两个字符串相等的充要条件是()。
A. 两个字符串的长度相等
B. 两个字符串中对应位置上的字符相等
C. 同时具备(A)和(B)两个条件
D. 以上答案都不对
答案:
【C】
54、把长度为m的单链表接在长度为n的单链表之后的算法的时间复杂度为
A. O(m)
B. O(n)
C. O(m+n)
D. O
(1)
答案:
【D】
55、设有n个关键字具有相同的Hash函数值,则用线性探测法把这n个关键字映射到HASH表中需要做()次线性探测。
A. n2
B. n(n+1)
C. n(n+1)/2
D. n(n-1)/2
答案:
【D】
56、设有5000个待排序的记录关键字,如果需要用最快的方法选出其中最小的10个记录关键字,则用下列()方法可以达到此目的。
A. 快速排序
B. 堆排序
C. 归并排序
D. 插入排序
答案:
【B】
57、设一个有序的单链表中有n个结点,现要求插入一个新结点后使得单链表仍然保持有序,则该操作的时间复杂度为()。
A. O(log2n)
B. O
(1)
C. O(n2)
D. O(n)
答案:
【D】
58、顺序查找不论在顺序线性表中还是在链式线性表中的时间复杂度为()。
A. O(n)
B. O(n2)
C. O(n1/2)
D. O(1og2n)
答案:
【A】
59、数据的最小单位是()。
A. 数据项
B. 数据类型
C. 数据元素
D. 数据变量
答案:
【A】
60、设某无向图中有n个顶点e条边,则建立该图邻接表的时间复杂度为()。
A. O(n+e)
B. O(n2)
C. O(ne)
D. O(n3)
答案:
【A】
61、某二叉树的后序遍历序列为DABEC、中序遍历序列为DEBAC,则前序遍历为
A. ACBED
B. DECAB
C. DEABC
D. CEDBA
答案:
【D】
62、设指针变量p指向双向链表中结点A,指针变量s指向被插入的结点X,则在结点A的后面插入结点X的操作序列为()。
A. p->right=s;s->left=p;p->right->left=s;s->right=p->right;
B. s->left=p;s->right=p->right;p->right=s;p->right->left=s;
C. p->right=s;p->right->left=s;s->left=p;s->right=p->right;
D. s->left=p;s->right=p->right;p->right->left=s;p->right=s;
答案:
【A】
63、设按照从上到下、从左到右的顺序从1开始对完全二叉树进行顺序编号,则编号为i结点的左孩子结点的编号为()。
A. 2i+1
B. 2i
C. i/2
D. 2i-1
答案:
【B】
64、设某散列表的长度为100,散列函数H(k)=k%P,则P通常情况下最好选择()。
A. 99
B. 97
C. 91
D. 93
答案:
【B】
64、二叉树的第k层的结点数最多为()。
A. 2k-1
B. 2K+1
C. 2K-1
D. 2k-1
答案:
【D】
65、设顺序表的长度为n,则顺序查找的平均比较次数为()。
A. n
B. n/2
C. (n+1)/2
D. (n-1)/2
答案:
【C】
66、利用直接插入排序法的思想建立一个有序线性表的时间复杂度为()。
A. O(n)
B. O(nlog2n)
C. O(n2)
D. O(1og2n)
答案:
【C】
67、下列四种排序中()的空间复杂度最大。
A. 插入排序
B. 冒泡排序
C. 堆排序
D. 归并排序
答案:
【D】
68、设一条单链表的头指针变量为head且该链表没有头结点,则其判空条件是()。
A. head==0
B. head->next==0
C. head->next==head
D. head!
=0
答案:
【A】
69、若线性表最常用的操作是存取第i个元素的值,则采用_______存储方式节省时间。
A. 单链表
B. 双链表
C. 单循环链表
D. 顺序表
答案:
【D】
70、设指针变量top指向当前链式栈的栈顶,则删除栈顶元素的操作序列为()。
A. top=top+1;
B. top=top-1;
C. top->next=top;
D. top=top->next;
答案:
【D】
71、在一个单链表中,若P所指节点不是最后节点,在P之后插入S所指节点,则执行
A. Sànext=Pànext;Pànext=S;
B. Pànext=Sànext;Sànext=P;
C. Sànext=P;Pànext=S;
D. Pànext=S;Sànext=P;
答案:
【A】
72、深度为k的完全二叉树中最少有()个结点。
A. 2k-1-1
B. 2k-1
C. 2k-1+1
D. 2k-1
答案:
【B】
73、设指针变量p指向单链表中结点A,若删除单链表中结点A,则需要修改指针的操作序列为()。
A. q=p->next;p->data=q->data;p->next=q->next;free(q);
B. q=p->next;q->data=p->data;p->next=q->next;free(q);
C. q=p->next;p->next=q->next;free(q);
D. q=p->next;p->data=q->data;free(q);
答案:
【A】