中国大学MOOC-陈越、何钦铭-数据结构-2019夏期末考试(含答案)
中国大学MOOC-陈越、何钦铭-数据结构-2019夏期末考试(含答案)
判断题
1-1
对N个不同的数据采用冒泡排序进行从大到小的排序,当元素基本有序时交换元素次数肯定最多。 (2分)
1-2
NlogN2和NlogN具有相同的增长速度。 (2分)
1-3
采用平方探测冲突解决策略(hi(k)=(H(k)+i2)%11, 注意:不是±i2),将一批散列值均等于2的对象连续插入一个大小为11的散列表中,那么第4个对象一定位于下标为0的位置。 (2分)
1-4
在一个有向图中,所有顶点的入度与出度之和等于所有边之和的2倍。 (2分)
1-5
若一棵平衡二叉树的所有非叶结点的平衡因子都是0,则其必为完美二叉树。(2分)
Key:1-5 FTTTT
单选题
2-1
在拓扑排序算法中用堆栈和用队列产生的结果会不同吗?(2分)
A. 有可能会不同
B. 以上全不对
C. 肯定是相同的
D. 是的肯定不同
2-2
数据结构中Dijkstra算法用来解决哪个问题? (2分)
A. 拓扑排序
B. 字符串匹配
C. 关键路径
D. 最短路径
2-3
给定一有向图的邻接表如下。从顶点V1出发按深度优先搜索法进行遍历,则得到的一种顶点序列为: (2分)
A. V1,V3,V4,V5,V2
B. V1,V4,V3,V5,V2
C. V1,V2,V3,V5,V4
D. V1,V2,V4,V5,V3
2-4
设一个栈的输入序列是1、2、3、4、5,则下列序列中,是栈的合法输出序列的是? (4分)
A. 5 1 2 3 4
B. 4 3 1 2 5
C. 4 5 1 3 2
D. 3 2 1 5 4
2-5
在并查集问题中,已知集合元素0~8所以对应的父结点编号值分别是{ 1, -4, 1, 1, -3, 4, 4, 8, -2 }(注:−n表示树根且对应集合大小为n),那么将元素6和8所在的集合合并(要求必须将小集合并到大集合)后,该集合对应的树根和父结点编号值分别是多少? (4分)
A. 8和-5
B. 8和-6
C. 4和-5
D. 1和-6
2-6
要判断一个整数N(>10)是否素数,我们需要检查3到√N之间是否存在奇数可以整除N。则这个算法的时间复杂度是:(2分)
A. O(0.5logN)
B. O(√N)
C. O(√NlogN)
D. O(N/2)
2-7
给定输入序列 {4371, 1323, 6173, 4199, 4344, 9679, 1989} 以及散列函数 h(X)=X%10。如果用大小为10的散列表,并且用分离链接法解决冲突,则输入各项经散列后在表中的下标为:(-1表示相应的插入无法成功)(4分)
A. 1, 3, 3, 9, 4, 9, 9
B. 1, 3, 4, 9, 5, 0, 8
C. 1, 3, 4, 9, 5, 0, 2
D. 1, 3, 4, 9, 7, 5, -1
2-8
设最小堆(小根堆)的层序遍历结果为{5, 18, 15, 28, 22, 42, 40}。用线性时间复杂度的算法将该堆调整为最大堆(大根堆),则该树的中序遍历结果为:(4分)
A. 18, 28, 22, 15, 40, 5, 42
B. 22, 5, 18, 42, 40, 15, 28
C. 18, 28, 22, 42, 15, 40, 5
D. 5, 22, 18, 42, 15, 40, 28
2-9
将1~6这6个键值插到一棵初始为空的二叉搜索树中。如果插入完成后,搜索树结构如图所示,问:可能的插入序列是什么? (2分)
A. 4 1 2 3 5 6
B. 4 1 3 2 5 6
C. 1 2 3 4 5 6
D. 4 1 3 2 6 5
2-10
将 8, 9, 7, 2, 3, 5, 6, 4 顺序插入一棵初始为空的AVL树。下列句子中哪句是错的? (4分)
A. 3 和 8 是兄弟
B. 7 是根结点
C. 4 和 6 是兄弟
D. 5 是 8 的父结点
2-11
在图中自a点开始进行广度优先遍历算法可能得到的结果为: (2分)
A. a, e, b, c, f, d
B. a, b, e, c, d, f
C. a, e, d, f, c, b
D. a, c, f, e, b, d
2-12
将序列{ 2, 12, 16, 88, 5, 10, 34 }排序。若前2趟排序的结果如下:
第1趟排序后:2, 12, 16, 10, 5, 34, 88
第2趟排序后:2, 5, 10, 12, 16, 34, 88
则可能的排序算法是:(2分)
A. 冒泡排序
B. 归并排序
C. 插入排序
D. 快速排序
2-13
对给定序列{ 110,119,7,911,114,120,122 }采用次位优先(LSD)的基数排序,则两趟收集后的结果为: (2分)
A. 110, 120, 911, 122, 114, 7, 119
B. 7, 110, 119, 114, 911, 122, 120
C. 7, 110, 911, 114, 119, 120, 122
D. 7, 110, 119, 114, 911, 120, 122
2-14
将10、12、1、14、6、5、8、15、3、9、7逐个按顺序插入到初始为空的最小堆(小根堆)中,然后连续执行两次删除最小元素操作(DeleteMin),此后堆顶的元素是什么? (4分)
A. 5
B. 9
C. 7
D. 6
2-15
设栈S和队列Q的初始状态均为空,元素a、b、c、d、e、f、g依次进入栈S。若每个元素出栈后立即进入队列Q,且7个元素出队的顺序是b、d、c、f、e、a、g,则栈S的容量至少是: (2分)
A. 1
B. 4
C. 2
D. 3
2-16
下列叙述错误的是()。 (2分)
A. 当一棵具有n 个叶子结点的二叉树的WPL 值为最小时,称其树为哈夫曼树,其二叉树的形状是唯一的
B. 哈夫曼树的结点个数不能是偶数
C. 哈夫曼树是带权路径长度最短的树,路径上权值较大的结点离根较近
D. 一棵哈夫曼树的带权路径长度等于其中所有分支结点的权值之和
2-17
已知一棵二叉树的树形如下图所示,其后序序列为{ e
, a
, c
, b
, d
, g
, f
}。树中与结点a
同层的结点是:(2分)
A. c
B. f
C. g
D. d
2-18
给定有权无向图的邻接矩阵如下,其最小生成树的总权重是: (4分)
A. 12
B. 14
C. 11
D. 10
2-19
给定散列表大小为17,散列函数为H(Key)=Key%17。采用平方探测法处理冲突:hi(k)=(H(k)±i2)%17将关键字序列{ 23, 22, 7, 26, 9, 6 }依次插入到散列表中。那么元素6存放在散列表中的位置是:(4分)
A. 15
B. 10
C. 2
D. 6
2-20
在一个链队列中,front
和rear
分别为头指针和尾指针,则插入一个结点s
的操作为( )。 (2分)
A. front=front->next;
B. s->next=front;front=s;
C. rear->next=s;rear=s;
D. s->next=rear;rear=s;
2-21
对于序列{ 49,38,65,97,76,13,27,50 },按由小到大进行排序,下面哪一个是初始步长为4的希尔排序法第一趟的结果? (4分)
A. 49,13,27,50,76,38,65,97
B. 13,27,38,49,50,65,76,97
C. 49,76,65,13,27,50,97,38
D. 97,76,65,50,49,38,27,13
2-22
在一个有权无向图中,如果顶点b到顶点a的最短路径长度是10,顶点c与顶点b之间存在一条长度为3的边。那么下列说法中有几句是正确的? (4分)
1. c与a的最短路径长度就是13
2. c与a的最短路径长度就是7
3. c与a的最短路径长度不超过13
4. c与a的最短路径不小于7
A. 3句
B. 1句
C. 4句
D. 2句
Key:1-5 ADADC 6-10 BACBD 11-15 BDCAD 16-20 ADDCC 21-22 AD
程序填空题
5-1
本函数的功能是从有N
个元素的线性表A
中查找第K
大的元素。其中函数BuildMinHeap(H, K)
是将元素H[1]
… H[K]
调整为一个最小堆。请完成下列填空。
ElementType FindKthLargest ( int A[], int N, int K )
{ /* it is assumed that K<=N */ElementType *H;int i, next, child;H = (ElementType *)malloc((K+1)*sizeof(ElementType));for ( i=1; i<=K; i++ ) H[i] = A[i-1];BuildMinHeap(H, K);for ( next=K; next<N; next++ ) {H[0] = A[next];if ( H[0] > H[1] ) {for ( i=1; i*2<=K; i=child ) {child = i*2;if ( child!=K && H[child+1]>H[child]/*(4分)*/ ) child++;if ( H[child]>H[0]/*(5分)*/ )H[i] = H[child];else break;}H[i] = H[0];}}return H[1];
}
5-2
下列代码的功能是利用散列函数hash
将一个元素插入到散列表ht[]
中。其中list
类型的结点包含element
类型的项item
、以及一个next
指针。如果插入成功,则函数返回1,否则返回0。
int insert( struct element item, list_pointer ht[] )
{int ret, hash_value;list_pointer ptr, trail, lead;ret = 1;hash_value = hash(item.key);trail = NULL; lead = ht[hash_value];for ( ; lead; trail = lead, lead = lead->next) {if (!strcmp(lead->item.key, item.key)) {printf("The key is in the table\n");ret = 0;}}if (ret) {ptr = (list_pointer)malloc(sizeof(struct list));ptr->item = item/*(3分)*/;ptr->next = NULL;if (trail)trail->next = ptr/*(3分)*/;elseht[hash_value] = ptr/*(3分)*/;}return ret;
}
编程题
7-1 根据后序和中序遍历输出先序遍历 (8 分)
本题要求根据给定的一棵二叉树的后序遍历和中序遍历结果,输出该树的先序遍历结果。
输入格式:
第一行给出正整数N(≤30),是树中结点的个数。随后两行,每行给出N个整数,分别对应后序遍历和中序遍历结果,数字间以空格分隔。题目保证输入正确对应一棵二叉树。
输出格式:
在一行中输出Preorder:以及该树的先序遍历结果。数字间有1个空格,行末不得有多余空格。
输入样例:
7
2 3 1 5 7 6 4
1 2 3 4 5 6 7
输出样例:
Preorder: 4 1 3 2 6 5 7
C语言实现:
#include<stdio.h>
#include<stdlib.h>
struct BiTNode{struct BiTNode *lchild;struct BiTNode *rchild;int data;
};
typedef struct BiTNode *BiTree;BiTree CreateTree(int *p, int *q, int n){if(n){BiTree T = (BiTree)malloc(sizeof(struct BiTNode));T->data = q[n-1];int i;for(i = 0; i < n; i++){if(q[n - 1] == p[i])break;}T->lchild = CreateTree(p, q, i);T->rchild = CreateTree(p + i + 1, q + i, n - i - 1);return T;}return NULL;
}
void PreorderTraversal(BiTree BT){if(BT){printf(" %d",BT->data);PreorderTraversal(BT->lchild);PreorderTraversal(BT->rchild);}
}
int main(){int n,i; scanf("%d",&n);int p[30],q[30];BiTree T;for(i = 0; i < n; i++){scanf("%d",&q[i]);} for(i = 0; i < n; i++){scanf("%d",&p[i]);}T = CreateTree(p, q, n);printf("Preorder:");PreorderTraversal(T);return 0;
}
中国大学MOOC-陈越、何钦铭-数据结构-2019夏期末考试(含答案)相关推荐
- 中国大学MOOC-陈越、何钦铭-数据结构-2019夏期末考试
1-1对一棵平衡二叉树,所有非叶结点的平衡因子都是0,当且仅当该树是完全二叉树.(2分) F 1-2n!是O(n^n)的. (2分) T 1-3若用平方探测法解决冲突,则插入新元素时,若散 ...
- 中国大学MOOC-陈越、何钦铭-数据结构-2019秋期末考试
[PTA]中国大学MOOC-陈越.何钦铭-数据结构-2019秋期末考试 一.判断题: 1-1 对N个不同的数据采用冒泡排序进行从大到小的排序,当元素基本有序时交换元素次数肯定最多. [F] 1-2 2 ...
- 中国大学MOOC-陈越、何钦铭-数据结构-2019夏期中考试+解析
中国大学MOOC-陈越.何钦铭-数据结构-2019夏期中考试+解析 判断题 1-1 用邻接矩阵法存储图,占用的存储空间数只与图中结点个数有关,而与边数无关. (3分)TRUE [解析]:邻接矩阵是用一 ...
- 中国大学MOOC-陈越、何钦铭-数据结构-2019春期末考试(题目+部分解答)
欢迎评论(指正或是询问都可),谢谢大家 一.判断题 思路很正常的题目. 1-4反例:4个顶点只用3条边就可以做到全连通.所以边数可能等于顶点个数减一.错误. 二.选择题 2-8需要细心的做一下双旋操作 ...
- 中国大学MOOC-陈越、何钦铭-数据结构-2020夏期末考试
5-2 下列代码的功能是对一个给定的图G执行拓扑排序,其中TopNum[]从1开始记录拓扑序. void Topsort( Graph G ) {Queue Q;Vertex V, W;NodePtr ...
- 中国大学MOOC-陈越、何钦铭-数据结构-2019夏期中考试
1-1如果无向图G必须进行两次广度优先搜索才能访问其所有顶点,则G一定有2个连通分量. (3分) T 1-2用邻接表法存储图,占用的存储空间数只与图中结点个数有关,而与边数无关. (3分) F 1-3 ...
- java基础大全app,中国大学MOOC的APP2020年零基础学Java语言期末考试大全答案
[多选] ATM地址可能会出现在下列哪条信令中() [单选] 下列有关于位图模式的表述正确的一项是?() [单选] 建筑职工意外伤害保险保险期限到()止. [单选] 自然率假说认为() [单选] 地震 ...
- 中国大学MOOC-陈越、何钦铭-数据结构-2020春期末考试【个人完整题解记录-判断选择部分】
欢快地安排了大半个晚上来做这次线上期末考,最后发现每种题型做完后都没摁保存(我就一直纳闷题目列表的状态怎么不会有变化!)...最后几分钟赶紧回忆答案尽可能多的填上去qwq,本来有机会拿50块PAT代金 ...
- 中国大学MOOC-陈越、何钦铭-数据结构-2019春期中考试
做了<数据结构>MOOC的期中考试,感觉还是有很多知识需要学习,现将考试题目整理如下: 判断题: 1-1用邻接矩阵法存储图,占用的存储空间数只与图中结点个数有关,而与边数无关. (3分) ...
最新文章
- 关于分组序号在MySQL中的实现
- pcie协议_PCIE总线,你不得不知道的信号分布及使用情况
- VMvare虚拟机简介、VMvare虚拟机的相关操作和管理
- linux下spi有哪些函数,linux下怎么快速的使用 SPI 驱动。
- php udp发送和接收_63、php利用原生socket创建udp服务
- Oracle技术之ASM上恢复STANDBY数据库出现ORA-15173错误
- 机器学习框架_一文了解机器学习框架-TensorFlow的原理和用途
- 解读netty3.9的数据处理流程(一)
- collectionutils包_CollectionUtils工具类的常用方法
- LeetCode Can I Win
- paip.提升用户体验----gcc c++ JIT-debugging 技术
- 浏览器查看Base64格式的图片
- java xheditor,xhEditor不能支持本map片上传,请问
- sqlserver2000安装时提示挂起并重启
- 手机银行消息服务器,服务与功能_手机银行_服务介绍_个人电子银行_电子银行频道_建设银行...
- 天行健,君子以自强不息;地势坤,群子以厚德载物。
- Predefined Shader preprocessor macros //预定义的着色器预处理宏
- 服务器系统做个备份吗,服务器操作系统能做备份吗
- 030 | 广西趣海有限责任公司创业计划书 | 大学生创新训练项目申请书 | 极致技术工厂
- 这几道SQL面试题秒杀大部分的0年工作经验的毕业生
热门文章
- ZOJ 3328	Wu Xing(游戏)
- 蓝汛CEO推动CHN-IX发展,为互联网行业增效减负
- SQL基础系列(四)——多表查询
- CentOS 之 python-devel 安装
- 《More Effective C++:35个改善编程与设计的有效方法》(中文版)
- Spring IOC系列学习笔记五:context:component-scan 节点解析
- joycon 连不上_JoyCon手柄怎么跟switch配对 详细Joy-Con与主机配对教程
- 让星空极速彻底下岗 熊坛高手放出破解秘技
- 酷雷曼一站式图片直播,助力品牌高效传播
- torchvision使用keypoint rcnn 进行人体关键点定位