已知一棵二叉树,如果先序遍历的节点顺序是: ADCEFGHB ,中序遍历是: CDFEGHAB ,则后序遍历结果为:D
A. CFHGEBDA
B. CDFEGHBA
C. FGHCDEBA
D. CFHGEDBA
解析:对于二叉树的遍历方式一般分为三种先序、中序、后序三种方式:
先序遍历(根左右)
若二叉树为空,则不进行任何操作:否则
①访问根结点。
②先序方式遍历左子树。
③先序遍历右子树。
中序遍历 (左根右)
若二叉树为空,则不进行任何操作:否则
①中序遍历左子树。
②访问根结点。
③中序遍历右子树。
后序遍历 (左右根)
若二叉树为空,则不进行任何操作:否则
①后序遍历左子树。
②后序遍历右子树。
③放问根结点。
目给出的先序遍历和中序遍历,可以画出二叉树:
初始序列为 1 8 6 2 5 4 7 3 一组数采用堆排序,当建堆(小根堆)完毕时,堆所对应的二叉树中序遍历序列为:A
A. 8 3 2 5 1 6 4 7
B. 3 2 8 5 1 4 6 7
C. 3 8 2 5 1 6 7 4
D. 8 2 3 5 1 4 7 6
解析:初始化序列:1 8 6 2 5 4 7 3,,小根堆就是要求结点的值小于其左右孩子结点的值,左右孩子的大小没有关系,那么小根堆排序之后为:1 2 4 3 5 6 7 8;
中序遍历:左根右,故遍历结果为:8 3 2 5 1 6 4 7
Unix 系统中,哪些可以用于进程间的通信?ABCD
A.Socket
B.共享内存
C.消息队列
D.信号量
管道(Pipe)及有名管道(named pipe):管道可用于具有亲缘关系进程间的通信,有名管道克服了管道没有名字的限制,因此,除具有管道所具有的功能外,它还允许无亲缘关系进程间的通信;
信号(Signal):信号是比较复杂的通信方式,用于通知接受进程有某种事件发生,除了用于进程间通信外,进程还可以发送信号给进程本身;linux 除了支持 Unix 早期信号语义函数 sigal 外,还支持语义符合 Posix.1 标准的信号函数 sigaction(实际上,该函数是基于 BSD 的,BSD 为了实现可靠信号机制,又能够统一对外接口,用 sigaction 函数重新实现了 signal 函数);
报文(Message)队列(消息队列):消息队列是消息的链接表,包括 Posix 消息队列 system V 消息队列。有足够权限的进程可以向队列中添加消息,被赋予读权限的进程则可以读走队列中的消息。消息队列克服了信号承载信息量少,管道只能承载无格式字节流以及缓冲区大小受限等缺点。
共享内存:使得多个进程可以访问同一块内存空间,是最快的可用 IPC 形式。是针对其他通信机制运行效率较低而设计的。往往与其它通信机制,如信号量结合使用,来达到进程间的同步及互斥。
信号量(semaphore):主要作为进程间以及同一进程不同线程之间的同步手段。
套接口(Socket):更为一般的进程间通信机制,可用于不同机器之间的进程间通信。起初是由 Unix 系统的 BSD分支开发出来的,但现在一般可以移植到其它类 Unix 系统上:Linux 和 System V 的变种都支持套接字。
如何提高查询 Name字段的性能?B
A. 在 Name 字段上添加主键
B. 在 Name 字段上添加索引
C. 在 Age 字段上添加主键
D. 在 Age 字段上添加索引
浏览器访问某页面, HTTP 协议返回状态码为 403 时表示 B
A. 找不到该页面
B. 禁止访问
C. 内部服务器访问
D. 服务器繁忙
常见的状态码:
200:请求被正常处理
204:请求被受理但没有资源可以返回
206:客户端只是请求资源的一部分,服务器只对请求的部分资源执行GET方法,相应报文中通过Content-Range指定范围的资源。
301:永久性重定向
302:临时重定向
303:与302状态码有相似功能,只是它希望客户端在请求一个URI的时候,能通过GET方法重定向到另一个URI上
304:发送附带条件的请求时,条件不满足时返回,与重定向无关
307:临时重定向,与302类似,只是强制要求使用POST方法
400:请求报文语法有误,服务器无法识别
401:请求需要认证
403:请求的对应资源禁止被访问
404:服务器无法找到对应资源
500:服务器内部错误
503:服务器正忙
简答题:
Java 中,为什么基类不能做为HashMap的键值, 而只能是引用类型,把引用类型作为HashMap 的键值, 需要注意哪些地方?
引用类型和原始类型的行为完全不同,并且它们具有不同的语义。引用类型和原始类型具有不同的特征和
用法,包括:大小和速度问题,这种类型以哪种类型的数据结构存储,当引用类型和原始类型用作某个类的实例数据时所指定的缺省值。对象引用实例变量的缺省值为 null,而原始类型实例变量的缺省值与它们的类型有关。
编程题:
一个数如果恰好等于它的因子之和, 这个数就称为” ” 完数” ”。
例如 6 = 1+2+3 。 编程找出1000 以内的所有完数。
public static void main(String[] args) {
for (int m = 2; m < 1000; m++) {
int s = 0;
for (int i = 1; i < m; i++) {
if ((m % i) == 0)
s += i;
}
if (s == m) {
System.out.print(m + " its factors are:");
for (int j = 1; j < m; j++) {
if ((m % j) == 0) {
System.out.print(j);
System.out.print(" ");
}
}
System.out.println();
}
}
}
运行结果:
6 its factors are:1 2 3
28 its factors are:1 2 4 7 14
496 its factors are:1 2 4 8 16 31 62 124 248