考试时长:120分钟
一 不定项选择题(共25题,每题4分,共100分,少选、错选、多选均不得分)
1 已知一棵二叉树,如果先序遍历的节点顺序是:ADCEFGHB,中序遍历是:CDFEGHAB,则后序遍历结果为:(D)
A.CFHGEBDA B.CDFEGHBA C.FGHCDEBA D.CFHGEDBA
2 下列哪两个数据结构,同时具有较高的查找和删除性能?(CD)
A.有序数组 B.有序链表 C.AVL树 D.Hash表
腾讯2014年校园招聘软件开发类笔试题目主要涵盖了数据结构、算法、操作系统、网络、编程基础等多个方面的知识。以下是对这些知识点的详细解析:
1. **二叉树遍历**:题目中提到了先序遍历和中序遍历的结果,用于确定后序遍历的顺序。在二叉树的三种遍历方式中,先序遍历是根-左-右,中序遍历是左-根-右,后序遍历是左-右-根。根据给定的遍历序列,我们可以推导出后序遍历的顺序是`CFHGEDBA`。
2. **数据结构性能**:题目询问哪些数据结构同时具有较高的查找和删除性能。有序数组和有序链表的查找和删除性能并不理想,而AVL树是一种自平衡的二叉搜索树,查找和删除性能较高;哈希表通过散列函数实现快速查找和删除,因此答案是C和D。
3. **排序算法的时间复杂度**:快速排序平均情况下的时间复杂度是O(nlogn),但最坏情况下是O(n^2);堆排序和归并排序的时间复杂度都是O(nlogn);冒泡排序的时间复杂度是O(n^2)。所以,时间复杂度不超过nlogn的排序算法是堆排序和归并排序。
4. **堆排序**:建堆(小根堆)完毕时,堆所对应的二叉树中序遍历序列为最小元素开始的递增序列。根据初始序列,构建小根堆后的中序遍历应该是最小的数字开始,即1。
5. **递归函数**:题目中的`foo`函数是斐波那契数列的递归实现。当n=5时,函数的返回值是`foo(4) + foo(3)`,依次递归,最终返回值为5。
6. **概率计算**:根据人口比例和犯罪率,计算案件发生在A区的概率,需要用到概率论中的乘法规则和加法规则。
7. **进程间通信**:在Unix系统中,进程间通信的方式包括管道、共享内存、消息队列、信号量等。Socket通常用于网络通信,不是进程间通信的主要方式。
8. **静态变量存储**:静态变量通常存储在全局区,因为它们在整个程序执行期间都存在。
9. **数据库查询优化**:在Name字段上添加索引可以提高查询性能,主键是唯一标识,添加在Age字段上没有意义。
10. **IP地址分类**:IP地址131.153.12.71的前两位是13,属于B类地址。
11. **下推自动识别机**:下推自动识别机(PDA)属于2型语言,可以识别上下文有关语言。
12. **宏定义与运算符优先级**:宏定义`add(a+b)`在实际计算时会先执行括号内的操作,即`5*(3+4)`,结果是19。
13. **HTTP状态码**:HTTP状态码403表示"禁止访问"。
14. **进制转换**:如果15*4=112成立,意味着15和112都是这个进制下的数。通过计算,可得这是6进制。
15. **哈夫曼编码**:哈夫曼编码是一种最优的前缀编码,用于压缩数据。根据字母出现的频率,编码应尽可能短,A选项满足这一条件。
16. **TCP/IP协议栈**:TCP对应OSI模型的传输层,IP对应网络层。
17. **栈的性质**:栈是后进先出的数据结构,所以栈的输出序列必须遵循这一原则。C选项DCEAB无法由正常的栈操作得到。
18. **线程共享资源**:在同一进程中,线程可以共享数据段和文件描述符,但每个线程有自己的栈和寄存器集。
19. **构造函数的执行顺序**:在派生类中,构造函数的执行顺序是基类构造函数先执行,然后是派生类的构造函数。
以上就是对腾讯2014年校园招聘软件开发类笔试试题涉及知识点的详细解析,这些知识点涵盖了计算机科学的基础内容,对于软件开发者来说是非常重要的。