判断题:

1-1
N2logN和NlogN2具有相同的增长速度。 (2分)

1-2
对一棵平衡二叉树,所有非叶结点的平衡因子都是0,当且仅当该树是完全二叉树。(2分)

1-3
无向连通图所有顶点的度之和为偶数。 (2分)

1-4
对N个不同的数据采用冒泡排序进行从大到小的排序,当元素基本有序时交换元素次数肯定最多。 (2分)

1-5
若用平方探测法解决冲突,则插入新元素时,若散列表容量为质数,插入就一定可以成功。 (2分)

选择题:

2-1
设栈S和队列Q的初始状态均为空,元素a、b、c、d、e、f、g依次进入栈S。若每个元素出栈后立即进入队列Q,且7个元素出队的顺序是b、d、c、f、e、a、g,则栈S的容量至少是: (2分)
A、1
B、2
C、3
D、4

2-2
在下列所示的平衡二叉树中,插入关键字48后得到一棵新平衡二叉树。在新平衡二叉树中,关键字37所在结点的左、右子结点中保存的关键字分别是: (4分)

A、13、48
B、24、48
C、24、53
D、24、90

2-3
线性表、堆栈、队列的主要区别是什么?(2分)
A、线性表用指针,堆栈和队列用数组
B、堆栈和队列都是插入、删除受到约束的线性表
C、线性表和队列都可以用循环链表实现,但堆栈不能
D、堆栈和队列都不是线性结构,而线性表是

2-4
对N(N≥2)

个权值均不相同的字符构造哈夫曼树。下列关于该哈夫曼树的叙述中,错误的是: (2分)
A、树中一定没有度为1的结点
B、树中两个权值最小的结点一定是兄弟结点
C、树中任一非叶结点的权值一定不小于下一层任一结点的权值
D、该树一定是一棵完全二叉树

2-5
在并查集问题中,已知集合元素0~8所以对应的父结点编号值分别是{ 1, -4, 1, 1, -3, 4, 4, 8, -2 }(注:−n表示树根且对应集合大小为n),那么将元素6和8所在的集合合并(要求必须将小集合并到大集合)后,该集合对应的树根和父结点编号值分别是多少? (4分)
A、1和-6
B、4和-5
C、8和-5
D、8和-6

2-6
要判断一个整数N(>10)

是否素数,我们需要检查3到√N之间是否存在奇数可以整除N

。则这个算法的时间复杂度是:(2分) 
A、O(N/2)

B、O(√NlogN)

C、O(√N)

D、O(0.5logN)

2-7
在一个有权无向图中,如果顶点b到顶点a的最短路径长度是10,顶点c与顶点b之间存在一条长度为3的边。那么下列说法中有几句是正确的? (2分)
1.c与a的最短路径长度就是13
2.c与a的最短路径长度就是7
3.c与a的最短路径长度不超过13
4.c与a的最短路径不小于7
A、1句
B、2句
C、3句
D、4句

2-8
将MMM个元素存入用长度为SSS的数组表示的散列表,则该表的装填因子为: (2分)
A、S+M

B、M−S

C、M×S

D、M/S

2-9
给定输入序列 {4371, 1323, 6173, 4199, 4344, 9679, 1989} 以及散列函数 h(X)=X

% 10

。如果用大小为10的散列表,并且用分离链接法解决冲突,则输入各项经散列后在表中的下标为:(-1表示相应的插入无法成功)(2分)
A、1, 3, 3, 9, 4, 9, 9
B、1, 3, 4, 9, 7, 5, -1
C、1, 3, 4, 9, 5, 0, 8
D、1, 3, 4, 9, 5, 0, 2

2-10
在拓扑排序算法中用堆栈和用队列产生的结果会不同吗?(2分)
A、是的肯定不同
B、肯定是相同的
C、有可能会不同
D、以上全不对

2-11
将 {28, 15, 42, 18, 22, 5, 40} 逐个按顺序插入到初始为空的最小堆(小根堆)中。则该树的前序遍历结果为:(4分)
A、5, 18, 15, 28, 22, 42, 40
B、5, 15, 18, 22, 28, 42, 40
C、5, 18, 28, 22, 15, 42, 40
D、5, 15, 28, 18, 22, 42, 40

2-12
将1~6这6个键值插到一棵初始为空的二叉搜索树中。如果插入完成后,搜索树结构如图所示,问:可能的插入序列是什么? (2分)

A、1 2 3 4 5 6
B、4 1 2 3 5 6
C、4 1 3 2 6 5
D、4 1 3 2 5 6

2-13
给定一有向图的邻接表如下。从顶点V1出发按广度优先搜索法进行遍历,则得到的一种顶点序列为: (2分)

A、V1,V2,V3,V4,V5
B、V1,V2,V3,V5,V4
C、V1,V3,V2,V4,V5
D、V1,V4,V3,V5,V2

2-14
已知一个图的邻接矩阵如下,则从顶点V1出发按深度优先搜索法进行遍历,可能得到的一种顶点序列为: (2分)

A、V1,V2,V3,V4,V5,V6
B、V1,V2,V4,V5,V6,V3
C、V1,V3,V5,V2,V4,V6
D、V1,V3,V5,V6,V4,V2

2-15
给出关键字序列{ 4321, 56, 57, 46, 28, 7, 331, 33, 234, 63 },下面哪个选择是按次位优先(LSD)链式基数排序进行了一趟分配和收集的结果? (2分)
A、→331→4321→33→63→234→56→46→57→7→28
B、→4321→331→33→63→234→56→46→57→7→28
C、→56→28→4321→331→33→234→46→57→63→7
D、→57→46→28→7→33→234→63→56→4321→331

2-16
将序列{ 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-17
给定有权无向图的邻接矩阵如下,其最小生成树的总权重是:(2分)

A、24
B、23
C、18
D、17

2-18
在利用堆栈将下列哪个中缀表达式转换为后缀表达式过程中,堆栈的操作系列为: push(′∗′)、push(′(′)、push(′+′)、pop()、pop()、pop()、push(′∗′)、pop()、push(′+′)、pop()

(2分)
A、2*(3+4)*5+6
B、2*(3+4*5)+6
C、2*(3+4*5+6)
D、以上都是

2-19
采用线性探测冲突解决策略,hi(k)=(H(k)+i)mod11

,将散列函数值分别等于2、2、3、3的四个对象a1、a2、a3、a4都插入一个大小为11的空散列表(哈希表)中。在不同的插入顺序中,哪句有关插入后散列表平均成功查找长度的判断是错的? (4分)
A、按a1、a2、a3、a4顺序和按a1、a3、a4、a2顺序,平均成功查找长度一样;
B、按a1、a3、a2、a4顺序和按a3、a1、a2、a4顺序,平均成功查找长度一样;
C、按a1、a3、a2、a4顺序和按a4、a1、a2、a3顺序,平均成功查找长度一样;
D、按任何插入顺序,其平均成功查找长度都一样.

2-20
将10, 12, 1, 14, 6, 5, 8, 15, 3, 9, 7逐个按顺序插入到初始为空的最小堆中,然后连续执行两次删除最小元素操作(DeleteMin),再插入4,16,此后堆顶的元素是什么? (2分)
A、4
B、5
C、7
D、9

程序填空题:

3-1
下列代码的功能是将小顶堆H中指定位置P上的元素的整数键值下调D个单位,然后继续将H调整为小顶堆。

 void DecreaseKey( int P, int D, PriorityQueue H )
{
int i, key;
key = H->Elements[P] - D;
for ( i = /**/(4分); H->Elements[i/] > key; i/= )
//(4分);
H->Elements[i] = key;
}

3-2
下列代码的功能是将一列元素{ r[1] … r[n] }按非递减顺序排序。普通选择排序是每次仅将一个待排序列的最小元放到正确的位置上,而这个另类的选择排序是每次从待排序列中同时找到最小元和最大元,把它们放到最终的正确位置上。

 void  sort( list r[], int n )
{
int i, j, mini, maxi; for (i=; i<n-i+; i++) {
mini = maxi = i;
for( j=i+; /**/(4分); ++j ){
if( /**/(4分) ) mini = j;
else if(r[j]->key > r[maxi]->key) maxi = j;
}
if( /**/(4分) ) swap(&r[mini], &r[i]);
if( maxi != n-i+ ){
if( /**/(4分) ) swap(&r[mini], &r[n-i+]);
else swap(&r[maxi], &r[n-i+]);
}
}
}

3-3
本题要求给出希尔排序对给定初始序列{9, 8, 7, 6, 5, 4, 3, 2, 1}利用增量序列{1, 3, 7}进行排序的分步结果。将每步结果填在下列空中。注意:相邻数字间必须有一个空格,开头结尾不得有多余空格。
原始序列 9 8 7 6 5 4 3 2 1
增量7排序后   (2分)
增量3排序后   (2分)
增量1排序后 1 2 3 4 5 6 7 8 9

3-4
本题要求给出下图中从A到其他顶点的最短路径。注意:填空时不能有任何空格。

终点 路径
A->B AB
A->C AC
A->D   (2分)
A->E   (2分)
A->F     (2分)
A->G ABG

编程题:

Description:

本题要求根据给定的一棵二叉树的后序遍历和中序遍历结果,输出该树的先序遍历结果。

Input:

第一行给出正整数N(<=30)是树中结点的个数。随后两行,每行给出N个整数,分别对应后序遍历和中序遍历结果,数字间以空格分隔。题目保证输入正确对应一棵二叉树。

Output:

在一行中输出Preorder:以及该树的先序遍历结果。数字间有1个空格,行末不得有多余空格。

Sample Input:

7
2 3 1 5 7 6 4
1 2 3 4 5 6 7

Sample Output:

Preorder: 4 1 3 2 6 5 7

判断题:FFTFF

选择题:CCBDB  CBDAC  CDCBB  BBADA

程序填空题:

P  H->Elements[i] = H->Elements[i/2]

j < n-i+1  r[j]->key < r[mini]->key  mini != i  maxi == i

2 1 7 6 5 4 3 9 8  2 1 4 3 5 7 6 9 8

ABGED  ABGE  ABGEF

编程题:

 #include <cstdio>
#include <cstring> void getpre(int *post, int *in, int n)
{
if(n <= ) return;
int i = , root = post[n-];
for(; i<n; ++i) {
if(in[i] == root) break;
}
printf(" %d", root);
getpre(post, in, i);
getpre(post+i, in+i+, n-i-);
} int main()
{
int n, post[], in[];
scanf("%d", &n);
for(int i=; i<n; ++i) {
scanf("%d", &post[i]);
}
for(int i=; i<n; ++i) {
scanf("%d", &in[i]);
} printf("Preorder:");
getpre(post, in, n); return ;
}
// Fin

中国大学MOOC-陈越、何钦铭-数据结构-2016秋期末考试的更多相关文章

  1. 中国大学MOOC-陈越、何钦铭-数据结构-2016秋期中考试

    判断题: 1-1 算法分析的两个主要方面是时间复杂度和空间复杂度的分析. (2分) 1-2 将N个数据按照从小到大顺序组织存放在一个单向链表中.如果采用二分查找,那么查找的平均时间复杂度是O(logN ...

  2. 中国大学MOOC-陈越、何钦铭-数据结构-2015秋 01-复杂度2 Maximum Subsequence Sum (25分)

    01-复杂度2 Maximum Subsequence Sum   (25分) Given a sequence of K integers { N​1​​,N​2​​, ..., N​K​​ }. ...

  3. 中国大学MOOC-陈越、何钦铭-数据结构-2017春

    中国大学MOOC-陈越.何钦铭-数据结构-2017春 学习地址 详细学习内容 Github记录地址 欢迎fork和star,有惊喜值得学习! 参考学习笔记 参考AC代码 数据结构和算法学习笔记 学习内 ...

  4. 中国大学MOOC-陈越、何钦铭-数据结构-笔记

    中国大学MOOC-陈越.何钦铭-数据结构-2017春 跟着<中国大学MOOC-陈越.何钦铭-数据结构-2017春>学习,平时练习一下pat上的作业外:在这里记录一下:平时学习视屏的收获. ...

  5. 中国大学MOOC中的后台文件传输

    早期版本的中国大学MOOC一旦被挂起后,应用在完成当前下载任务后无法继续添加新任务,当然也无法将缓存状态写入数据库.这个问题能否顺利解决直接关系到用户体验. 顺便吐槽下,凡是使用了后台文件传输还提示你 ...

  6. 中国大学mooc直播回放看这里哦http://www.icourse163.org/forum/1001974001/topic-1003372881.htm?sortType=1&pageIndex=1

    中国大学mooc直播回放看这里哦http://www.icourse163.org/forum/1001974001/topic-1003372881.htm?sortType=1&pageI ...

  7. 中国大学MOOC课程信息之数据分析可视化二

    版权声明:本文为博主原创文章,转载 请注明出处:https://blog.csdn.net/sc2079/article/details/82318571 - 写在前面 本篇博客继续对中国大学MOOC ...

  8. 中国大学MOOC课程信息之数据分析可视化一

    版权声明:本文为博主原创文章,转载 请注明出处:https://blog.csdn.net/sc2079/article/details/82263391 9月2日更:中国大学MOOC课程信息之数据分 ...

  9. 中国大学MOOC课程信息爬取与数据存储

    版权声明:本文为博主原创文章,转载 请注明出处: https://blog.csdn.net/sc2079/article/details/82016583 10月18日更:MOOC课程信息D3.js ...

随机推荐

  1. angular报$injector / unpr的错误

    原因:angular引用未定义的错误,因为JS代码压缩过后找不到申明的变量,,没在使用之前定义,且代码被压缩,则报错(变量压缩后会变成单个字母无法识别,需在引用前分别定义): 解决:angular.m ...

  2. Nginx:针对IPv4的内核参数优化

    这里提及的参数是和IPv4网络有关的linux内核参数,我们可以将这些内核参数的值追加到linux系统的/etc/sysctl.conf文件中,然后使用如下命令使修改生效: [root@bogon ~ ...

  3. 《Linux多线程服务端编程:使用muduo C++网络库》上市半年重印两次,总印数达到了9000册

    <Linux多线程服务端编程:使用muduo C++网络库>这本书自今年一月上市以来,半年之内已经重印两次(加上首印,一共是三次印刷),总印数达到了9000册,这在技术书里已经算是相当不错 ...

  4. 如何在一个div标签里显示出另一个网页? <iframe src=" http://www.baidu.com " width="800px" height="200px" scrolling="no" frameborder="0"> </iframe>

    如何在一个div标签里显示出另一个网页? 用在div里用iframe,就像下面的代码 <iframe src=" http://www.baidu.com " width=& ...

  5. 使用 KGDB 调试 Kernel On Red Hat Linux

    1. KGDB 简介         KGDB  提供了一种使用 GDB 调试 Linux 内核的机制.使用 KGDB 可以象调试普通的应用程序那样,在内核中进行设置断点.检查变量值.单步跟踪程序运行 ...

  6. idea 从github下载项目提示 file name too long 的解决方案

    1.找到git shell命令行 2运行如下命令 git config --global core.longpaths true 附地址https://github.com/Strider-CD/st ...

  7. TYVJ博弈论

    一些比较水的博弈论...(为什么都没有用到那什么SG呢....) TYVJ 1140  飘飘乎居士拯救MM 题解: 歌德巴赫猜想 #include <cmath> #include < ...

  8. hdu 1015(DFS)

    Safecracker Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total ...

  9. tomcat详情

    [转载]http://grass51.blog.51cto.com/4356355/1123400

  10. floyd算法小结

    floyd算法是被大家熟知的最短路算法之一,利用动态规划的思想,f[i][j]记录i到j之间的最短距离,时间复杂度为O(n^3),虽然时间复杂度较高,但是由于可以处理其他相似的问题,有着广泛的应用,这 ...