天天看点

alibaba——研发/算法笔试题2

3、进程阻塞的原因不包括(a)

a、时间片切换

b、等待i/o

c、进程sleep

d、等待解锁

答:linux基础知识。

解析:只要理解进程的概念就ok。选a。

知识补充:

进程是一个可并发执行的程序,在一个数据集合上的一次运行过程。它是系统进行资源分配和调度的一个独立单位。

进程的特征:动态性、并发性、独立性、异步性,系统为每一个进程设立一个进程控制块——pcb。

进程与程序的区别:1)、程序是进程的静态文本,进程是执行程序的动态过程;2)、一个进程可以执行一个或多个程序,几个进程可以同时执行一个程序;3)、程序可作为软件资源长期保存,进程只是一次执行过程,是暂时的;4)、进程是系统分配调度的独立单位,能与其他进程并发执行。

进程状态及其演变:进程执行的间断性,决定了进程可能具有多种状态。事实上,运行的进程可能具有就绪状态、执行状态、阻塞状态三种基本状态。

进程的三种基本状态演变图如下图所示:

alibaba——研发/算法笔试题2

当进程已分配到除cpu以外的所有必要资源时,它便处于就绪状态,一旦获得cpu,便立即执行。已获得cpu的进程进入执行状态。正在执行的进程,由于发生某个事件而暂时无法执行时,便放弃处理机而进入阻塞状态。由于执行的进程变为阻塞状态后,调度程序立即把处理机分配给另一个就绪进程;因此,阻塞进程的事件消失后,进程不会立即恢复到执行状态,而转变为就绪状态,重新等待处理机。

在实际系统中,进程还有其它几个状态。有的系统有时希望能人为地把进程挂起,使之处于静止状态,以便研究其执行情况或对它进行修改。下图示出了具有挂起状态的进程状态演变图。

alibaba——研发/算法笔试题2

进程控制块pcb:(process control block)这是为使多个程序能并发执行而为每个程序所配置的一个数据结构,其中存放了用于描述该进程情况和控制进程运行所需的全部信息。

4、设只含根结点的二叉树高度为1,现有一颗高度为h(h>1)的二叉树上只有出度为0和出度为2的结点,则此二叉树中所包含的结点数至少为(b)个。

a、2^h-1

b、2h-1

c、2h

d、2h+1

答:数据结构基础知识。

解析:如果每个节点出度要么为0要么为2,那么也就是要么自己为叶子,要么自己拥有左右儿子。那么什么情况下节点最少呢?直接沿着一条路下去保持出度为2,直到高度达到h,那么此时节点总数:2h-1。故选b。

二叉树是每个节点最多有两个子树的有序树。深度是对于二叉树整体来说的,二叉树的深度就是距离根节点最大的层数。结点指二叉树中一个个的点。

度指父结点下面有几个孩子结点。度分为入度和出度,一般都是对于单个结点来说的;入度

(in-degree) :以某顶点为弧头,终止于该顶点的弧的数目称为该顶点的入度。出度 (out-degree) :以某顶点为弧尾,起始于该顶点的弧的数目称为该顶点的出度。

前序:根结点第一个访问,然后访问左、右孩子;后序:根结点最后访问,开始先访问左、右孩子;中序:根结点第二个访问,最先访问左孩子,最后访问右孩子。

举例说明:如下图所示

alibaba——研发/算法笔试题2

图中的0、1、2、3、4、5、6就是结点;针对结点1,他下面有两个孩子3、4,所以说结点1的度为2;针对结点4,他下面一个孩子都没有,所以说结点4的度为0;前序序列:0134256,后序序列:3415620,中序序列:3140526。

下面给出数据结构中的入度和出度算法(c语言)

继续阅读