1、若二叉树采用二叉链表存储结构,要交换其所有分支结点左、右子树的位置,利用()遍历方法最合适
A前序B中序C后序D按层次
解析:显然后序遍历比较合理。正常的逻辑应该就是:做好当前结点子树内部的交换,然后交换当前结点的左右子树。刚好符合后序遍历的算法逻辑。1.交换好左子树2.交换好右子树3.交换左子树与右子树其他算法如先序和按层次其逻辑都差不多,即访问当前结点时交换其左右子树。从逻辑上来看稍显别扭一点点。因此说最合适应该是后序遍历,但是从实现上来说先序和按层次都是可以的。1.交换左子树与右子树2.遍历左子树3.遍历右子树按层次遍历1.根结点入队列2.出队列,交换其左右子树,将子树的根入队列3.重复2直到队列为空中序遍历相对较难实现一些。
2、链表不具备的特点是()
A可随机访问任何一个元素
B插入、删除操作不需要移动元素
C无需事先估计存储空间大小
D所需存储空间与线性表长度成正比
解析:链表是线性表的链式存储,是用结点来存储数据元素。线性表采用链表作为存储结构时,不能进行数据元素的随机访问,其优点是插入和删除操作不需要移动元素。所以,本题应该选择A。
3、下列关于栈的叙述正确的是()
A栈是非线性结构
B栈是一种树状结构
C栈具有先进先出的特征
D栈有后进先出的特征
解析:栈实际上也是线性表,是按照“先进后出”或“后进先出”的原则组织数据的。
4、某棵完全二叉树上有698个节点,则该二叉树的叶子节点数为
A349B350C255D351
解析:所谓完全二叉树是指除最后一层外,每一层上的结点数均达到最大值;在最后一层上只缺少右边的若干结点。具有n个结点的完全二叉树,其父结点数为int(n/2),而叶子结点数等于总结点数减去父结点数。本题n=698,故父结点数等于int(698/2)=349,叶子结点数等于698-349=349。
5、输入若已经是排好序的,下列排序算法最快的是()
A插入排序BShell排序C合并排序D快速排序
B:希尔排序基于插入排序,只有好的情况下才能达到O(n)
实际上该题接收窗口一直为10KB,可知不管何时,发送窗口一定小于等于10KB,选项中只有A选项满足条件,可直接得出选A。
8、linux系统中,给文件授予可执行权限的命令是()
AchownBmvCsudoDchmod
解析:chown更改文件的拥有者,mv移动,sudo以管理员权限运行,chmod给文件授予可执行权限。
解析:进程有3个状态:就绪态。执行态、阻塞态。三种状态的转换包含有:
就绪->执行,执行->就绪,执行->阻塞,阻塞->就绪
11、如何减少换页错误?
A进程倾向于占用CPU
B访问局部性(localityofreference)满足进程要求
C进程倾向于占用I/O
解析:换页错误又称缺页错误,当一个程序试图访问没有映射到物理内存的地方时,就会出现缺页错误,这时操作系统就要去虚拟内存中加载这块内存页。
12、在内存分配的"最佳适应法"中,空闲块是按()。
A始地址从小到大排序
B始地址从大到小排序
C块的大小从小到大排序
D块的大小从大到小排序
13、某网站的数据库有一个成绩表myscore,希望找出成绩表中平均得分小于90的所有试卷。
Aselectpaper_idfrommyscorewheresum(score)<90groupbypaper_id
Bselectpaper_idfrommyscoregroupbypaper_idhavingavg(score)<90
Cselectpaper_idfrommyscorewhereavg(score)<90
Dselectpaper_idfrommyscorewhereavg(score)<90groupbypaper_id
在finalize过程中抛出的任何异常都默认被忽略掉了,同时对象的销毁过程被取消
垃圾回收是由守护进程执行的
21、【加减二叉树】
二叉树是除了叶子节点之外所有的节点都最多有两个子节点的树。满二叉树则是除叶子节点外所有节点都有两个子节点的树,且所有叶子节点到根节点的距离都相等。现在有一棵无限大的满二叉树,根节点编号为1。编号为i的节点的左儿子编号为2*i,右儿子2*i+1(比如根节点1的左儿子为2,右儿子为3,2的左儿子为4,右儿子为5。)。牛牛在这棵树上做一个游戏,他从妞妞那里得到了两个数n和k,妞妞希望他拿着数字0从根节点开始往下走,每次选择一条边移动,到达一个节点时选择加上这个节点的编号或者减去这个节点的编号。在走到第k个节点时所得到的数字刚好等于n。
这样的路径当然有很多。为了增加难度,妞妞决定让牛牛告诉她经过的节点的编号和最小的路径。妞妞很聪明,给出的问题都是一定存在答案的。
你能帮帮牛牛吗?
22、【走斜线】
有天他来到一张方格地图上,整张地图可以看做一个二维坐标轴。牛牛此刻处于原点(0,0),他想要到点(x,y)去。
牛牛有强迫症,他规定自己必须恰好k步走到点(x,y),中途可以经过任何点包括(x,y),但是第k步一定要到达(x,y)。一步有八种走法,直线东(+1,0)南(0,-1)西(-1,0)北(0,+1),斜线东南(+1,-1)东北(+1,+1)西南(-1,-1)西北(-1,+1)。
牛牛会在能k步到达目的地的基础下尽量走斜线,你能计算出牛牛到底走了多少条斜线吗?
23、【得分最大】
牛牛和妞妞从他们的好朋友果果处得到了两个盒子,盒子里是一些写了分值的彩球。牛牛和妞妞发现两个盒子里的彩球数目是相等的,就决定一人一个。
妞妞拿到自己的盒子之后,决定跟牛牛玩一个游戏,规则如下:
一开始两个人盒子里的彩球数目都是n个,由妞妞先手,两人轮流实行下面两个操作中的一个(只能选其中一个执行,不能不执行。),直到两个盒子里的彩球都被拿完位置。
1、从自己的盒子里选一个球拿出来,把球上面的分值加在自己的总得分上边。
2、从对方的盒子里选一个球拿出来,把这个球移出游戏(对方不能再拿这个球)。
妞妞和牛牛都十分聪明,不会出错,并且尽可能让自己的得分比对方多。妞妞想知道,在游戏结束的时候,他能比牛牛多得多少分呢?