1.前序遍历 , 中序遍历 , 后序遍历
答: 前序遍历:根>>左树>>右树;
中序遍历:左树>>根>>右树;
后序遍历:左树>>右树>>根; 也就是说以根遍历的位置取名.
来源: http://zhidao.baidu.com/question/28435209.html;
来源: http://zhidao.baidu.com/question/55024808.html?fr=qrl&fr2=query;
2.冒泡排序—-BubbleSort:
基本概念
冒泡排序的基本概念是:依次比较相邻的两个数,将大数放在前面,小数放在后面。即首先比较第1个和第2个数,将大数放前,小数放后。然后比较第2个数和第3个数,将大数放前,小数放后,如此继续,直至比较最后两个数,将大数放前,小数放后,此时第一趟结束,在最后的数必是所有数中的最小数。重复以上过程,仍从第一对数开始比较(因为可能由于第2个数和第3个数的交换,使得第1个数不再大于第2个数),将大数放前,小数放后,一直比较到最小数前的一对相邻数,将大数放前,小数放后,第二趟结束,在倒数第二个数中得到一个新的最小数。如此下去,直至最终完成排序。
由于在排序过程中总是大数往前放,小数往后放,相当于气泡往上升,所以称作冒泡排序。
用二重循环实现,外循环变量设为i,内循环变量设为j。外循环重复9次,内循环依次重复9,8,…,1次。每次进行比较的两个元素都是与内循环j有关的,它们可以分别用a[j]和a[j+1]标识,i的值依次为1,2,…,9,对于每一个i, j的值依次为1,2,…10-i。
3.子查询中的in和exsists什么时候使用?
答: 关于EXISTS与IN的区别:
EXISTS检查是否有结果,判断是否有记录,返回的是一个布尔型(TRUE/FALSE)。
IN是对结果值进行比较,判断一个字段是否存在于几个值的范围中,所以 EXISTS 比 IN 快。
主要区别是:
exists主要用于片面的,有满足一个条件的即可,
in主要用于具体的集合操作,有多少满足条件.
exists是判断是否存在这样的记录,
In是判断某个字段是否在指定的某个范围内。
exists快一些吧 。
in适合内外表都很大的情况,exists适合外表结果集很小的情况。
来源: http://hi.baidu.com/xinhuijun/blog/item/af6081187e0aabb54aedbc8f.html
EXISTS与IN的区别:
IN: 确定给定的值是否与子查询或列表中的值相匹配。
EXISTS: 指定一个子查询,检测行的存在。
下面从具体的语句来看:
select * from 表A where exists(select * from 表B where 表B.id=表A.id)
这句相当于: select * from 表A where id in (select id from 表B)
对于表A的每一条数据,都执行select * from 表B where 表B.id=表A.id的存在性判断,如果表B中存在表A当前行相同的id,则exists为真,该行显示,否则不显示
来源: http://www.cnitblog.com/youyou/archive/2007/09/07/33132.html
4.数据库查询(题不记得了)
5.数据库查询(题不记得了)
6.TCP三次握手
答: TCP 三次握手
TCP 连接是通过三次握手进行初始化的。三次握手的目的是同步连接双方的序列号和确认号并交换 TCP 窗口大小信息。以下步骤概述了通常情况下客户端计算机联系服务器计算机的过程:
1. 客户端向服务器发送一个SYN置位的TCP报文,其中包含连接的初始序列号x和一个窗口大小(表示客户端上用来存储从服务器发送来的传入段的缓冲区的大小)。
2. 服务器收到客户端发送过来的SYN报文后,向客户端发送一个SYN和ACK都置位的TCP报文,其中包含它选择的初始序列号y、对客户端的序列号的确认x+1和一个窗口大小(表示服务器上用来存储从客户端发送来的传入段的缓冲区的大小)。
3. .客户端接收到服务器端返回的SYN+ACK报文后,向服务器端返回一个确认号y+1和序号x+1的ACK报文,一个标准的TCP连接完成。
TCP 使用类似的握手过程来结束连接。这可确保两个主机均能完成传输并确保所有的数据均得以接收
TCP Client Flags TCP Server
1 Send SYN (seq=x) —-SYN—> SYN Received
2 SYN/ACK Received <---SYN/ACK---- Send SYN (seq=y), ACK (x+1)
3 Send ACK (y+1) ----ACK---> ACK Received, Connection Established
w: ISN (Initial Sequence Number) of the Client
x: ISN of the Server
来源: http://hi.baidu.com/it_hawk/blog/item/d053ab346830783e5ab5f54e.html
7.OOP,三种什么什么(英文没看懂)
答: 面向对象编程(Object Oriented Programming,OOP,面向对象程序设计)是一种计算机编程架构。
OOP 的一条基本原则是计算机程序是由单个能够起到子程序作用的单元或对象组合而成。OOP 达到了软件工程的三个主要目标:重用性、灵活性和扩展性。为了实现整体运算,每个对象都能够接收信息、处理数据和向其它对象发送信息。OOP 主要有以下的概念和组件:
组件 - 数据和功能一起在运行着的计算机程序中形成的单元,组件在 OOP 计算机程序中是模块和结构化的基础。
抽象性 - 程序有能力忽略正在处理中信息的某些方面,即对信息主要方面关注的能力。
封装 - 也叫做信息封装:确保组件不会以不可预期的方式改变其它组件的内部状态;只有在那些提供了内部状态改变方法的组件中,才可以访问其内部状态。每类组件都提供了一个与其它组件联系的接口,并规定了其它组件进行调用的方法。
多态性 - 组件的引用和类集会涉及到其它许多不同类型的组件,而且引用组件所产生的结果得依据实际调用的类型。
继承性 - 允许在现存的组件基础上创建子类组件,这统一并增强了多态性和封装性。典型地来说就是用类来对组件进行分组,而且还可以定义新类为现存的类的扩展,这样就可以将类组织成树形或网状结构,这体现了动作的通用性。
由于抽象性、封装性、重用性以及便于使用等方面的原因,以组件为基础的编程在脚本语言中已经变得特别流行。Python 和 Ruby 是最近才出现的语言,在开发时完全采用了 OOP 的思想,而流行的 Perl 脚本语言从版本5开始也慢慢地加入了新的面向对象的功能组件。用组件代替“现实”上的实体成为 JavaScript(ECMAScript) 得以流行的原因,有论证表明对组件进行适当的组合就可以在英特网上代替 HTML 和 XML 的文档对象模型(DOM)。
来源: http://www.itisedu.com/phrase/200604240956125.html
8. 四个人站在桥的一侧黑天过桥,一个手电筒照明,桥上一次只能过一个人或两个人,并且手电筒要有人返回给原来的一侧,就是说人来回过桥都要有人拿手电筒.只有17分钟四个人都要过去.每个人的速度不同,两个人走过桥,时间和速度以慢的人为准.四个人单独过桥的时间分别为: man1 : 1分钟, man2 : 2分钟, man3 : 5分钟, man4 : 10分钟, 请问你能想到的最快的过桥方式?
例如:man1和man4一起过桥,要10分钟,如果man4返回送手电筒,又要10分钟,总计20分钟.但是失败了.
9.UML翻译题(没想起来 ,原来是建模语言 )
10.描述一下你觉得做得最好的项目( 没时间答)