1.一个长度为99的循环链表,指针A和指针B都指向了链表中的同一个节点,A以步长为1向前移动,B以步长为3向前移动,一共需要同时移动多少步A和B才能再次指向同一个节点__99__。
2.如图所示,从A点发出一束激光,于AD直线和CD直线反射多次后,垂直达到了B点(B点可能在AD上也可能在CD上,入射角等于反射角),如角CDA=8°,那么最多反射次数是_10___。(从B点原路反射回点A次数不纳入计算,图中给出3次反射的例子)
解析:
如上图所示,以最后一次反射来看,
1)由反射原理可知,角DBC的平分线与AB垂直,则可得到平分线与BC的夹角为α,从而角DBC为2α;
2)同理知角BDC和角DBC互余,而角EDB的平分线与DC垂直,因此可得倒数第二次反射的夹角为2α;
3)同理亦可向前不断推进,则若输入角度为α的整数倍,则可以实现最后一次折射正好与一边垂直,
而由于输入光线必须保证向右传播,则角度范围为(0,90),而α=8,90/α=11,
由题意知,题目图中4α算3此反射,则11α算10次反射。
综上,答案为10。
3.对一棵二叉树进行后续遍历,其输出结果为 A, B, C,这样的二叉树有____棵。
4.下面数据结构能够支持随机的插入和删除操作、并具有较好的性能的是____。
A.数组和链表
B.链表和哈希表
C.哈希表和队列
D.队列和堆栈
E.堆栈和双向队列
F.双向队列和数组
5。在如下8*6的矩阵中,请计算从A移动到B一共有____种走法。要求每次只能向上或向右移动一格,并且不能经过P。
A.456
B.492
C.568
D.626
E.680
F.702
解析:
8*6的矩阵,从左下角A到右上角B,一共需要走12步,其中5步向上,7步向右,因此总的走法一共有C(12,5)=792种,但题目规定不能经过P,因此需要减去经过P点的走法。
经过P的路径分为两部分,从A到P,从P到B。
同理,从A到P的走法:C(6,2)=15;
同理,从P到B的走法:C(6,3)=20;
因此从A到B经过P点的走法有15*20=300种,
所以从A到B不经过P点的走法有792-300=492种。
6.现有 1G 数据需要排序,计算资源只有 1G 内存可用,下列排序方法中最可能出现性能问题的是____。
A.堆排序
B.插入排序
C.归并排序
D.快速排序
E.选择排序
F.冒泡排序
解析:
归并排序因为需保存中间结果,需要额外辅助空间多,所以此处容易出问题
7.凯撒(Caesar)密码是一种基于字符替换的对称式加密方法,它是通过对 26 个英文字母循环移位和替换来进行编码的。设待加密的消息为"Alibaba Group",加密后的密文是"RCzsrsr XIFLG",则采用的密匙 k 是____。
A.10
B.11
C.13
D.15
E.17
解析:
首先,根据题意---------凯撒(Caesar)密码是一种基于字符替换的对称式加密方法,它是通过对26个英文字母循环移位和替换来进行编码的。
所以大概就可以猜得到就是对字母进行移位或者替换。
然后就是要证明我们的猜想是否正确。
待加密的消息为"Alibaba Group",加密后的密文是"RCzsrsr XIFLG",
根据26个字母进行编号:可知两个编号的差是17, 而且都完全符合这个17的移位差。
则采用的密匙k是17
8.
一台机器对 200 个单词进行排序花了 200 秒(使用冒泡排序),那么花费 800 秒,大概可以对多少个单词进行排序
A.400
B.500
C.600
D.700
E.800
F.900
解析:
n的数据量,时间复杂度是O(n^2),200单词是200秒
2n的数据量时间复杂度是2^2O(n),400单词是800秒
答案应该是400个单词
9.设一棵二叉树有 3 个叶子节点,有 8 个度为 1 的节点,则该二叉树中总的节点数为______。
正确答案: B 你的答案: 空 (错误)
A.12
B.13
C.14
D.15
E.16
F.17
解析:
设度为0,为1,为2的节点分别有N0,N1,N2.则有以下等式
N0+N1+N2=1*N1+2*N2+1
解方程,得 N0=N2+1,题中说N0=3,则N2=2;
故N0+N1+N2=2+3+8=13
10.由权值分别为 1、 12、 13、 4、 8 的叶子节点生成一颗哈夫曼树,它的带权路径长度为()
A.12
B.68
C.43
D.6
E.25
F.81
解析:
Hoffman树如下:
38
*13 25
*12 13
5 *8
*1 *4
其中带*为原始元素,总共4层(不算根节点) 带权路径长度 13*1 + 12*2 + 8*3 + (1+4)*4 = 81
11.设有三个元素 A、 B、 C、 D 顺序进栈,在进栈过程中可以出栈,出栈次序错误的排列是
正确答案: F 你的答案: 空 (错误)
A.ABCD
B.DCBA
C.ACBD
D.BCDA
E.ACDB
F.DCAB
12.同一个进程中的线程不共享的部分是()
A.信号
B.堆
C.文件描述符
D.进程组 id
E.代码段
F.栈空间
13.对 N 个数进行排序,在各自最优条件下以下算法复杂度最低的是()
正确答案: D 你的答案: 空 (错误)
A.快速排序
B.堆排序
C.冒泡排序
D.插入排序
E.选择排序
F.归并排序
14.下面哪个不是线性表?
A.循环链表
B.队列
C.栈
D.关联数组
E.空字符串数组
F.双向链表
15.下面的哪种排序算法在算复杂度平均不是 O(nlogn)的?
A.快速排序
B.桶排序
C.合并排序
D.二叉树排序树排序
E.堆排序