当前位置:问答库>考研试题

2017年南通大学计算机科学与技术学院919C考研冲刺密押题

  摘要

一、填空题

1. 假定查找有序表

【答案】37/12

【解析】折半查找时每个的次数如表所示:

平均查找次数为

2. 试利用下列栈和串的基本操作完成下述填空题。

initstack (S ) 置S 为空找; push (S , X ) 元素X 入找; pop (S ) 出栈操作; gettop (S ) 返回栈顶元素; sempty (S ) 判找空函数;

置串 判串 返回联接

empty (st ) 判串空函数

{若给定的表达式的前缀式pre 正确,本过程求得和它相应的表达式exp 并返回true , 否则exp 为空串,并返回false 。已知原表达式中不包含括弧,opset 为运算符的集合。)

第 2 页,共 69 页

中每个元素的概率相等,则进行折半查找时的平均查找长度为_____

为空串;

是否相等的函数;

之后的串;

length (st ) 返回串st 的长度;

sub (S , i , 1) 返回S 中第i 个字符;

注意:毎个空格只填一个语句。 【答案】(1)(2)(3)(4)(5)(6)(7)exp (8)(9)exp (10)(11

)(12)

3. 表达式

【答案】

4. 应用prim 算法求解连通网络的最小生成树问题。

(1)针对如图所示的连通网络,试按如下格式给出在构造最小生成树过程中顺序选出的各条边。

〔始顶点号,终顶点号,权值)

取栈顶操作符 操作符取出后,出栈

将pre 的最后一个字符(操作数)加入到中缀式exp 的最后

的后缀表达式是_____。

若ch 是操作数且栈非空,则形成部分中缀表达式

栈S 初始化为空栈 串exp 初始化为空串 判取出字符是否是操作符

如ch 是运算符,则入操作符栈s 判栈8是否为空

若读出ch 是操作数且栈为空,则按出错处理

第 3 页,共 69 页

(2)下面是Prim 算法的实现,中间有5个地方缺失,请阅读程序后将它们补上。

的值在〈limits •h>中

//图的顶点数,应由用户定义

//用二维数组作为邻接矩阵表示

//生成树的边结点

//边的起点与终点

//边上的权值

//最小生成树定义

//从顶点rt 出发构造图G 的最小生成树T ,rt 成为树的根结点

//初始化最小生成树

T

//依次求MST 的候选边

//遍历当前候选边集合

//选具有最小权值的候选边

//图不连通,出错处理

//修改候选边集合

【答案】(1)(0,3,1); (3,5, 4); (5,2,2); (3,1, 5); (1,4,3) (2)①T[k]; tovex=i②min=Maxint③mispos=i④exit (O )⑤T[i]; fromvex=v

【解析】Prim 算法的执行类似于寻找图的最短路径的Dijkstra 算法。假设N={V,E}是连通图

,是N

上最小生成树边的集合。算法从属于

为止。

5. 二叉树的前序序列和中序序列相同的条件是_____。

【答案】空树或任何结点至多只有右子树的二叉树

【解析】前序遍历的顺序为根左右,中序遍历的顺序为左根右,因此若中序遍历和前序遍历序列相同,则任何结点都没有左子树。

第 4 页,共 69 页

E T 开始,重复执行下述操作:在所有u

属于

加入集合

同时将

并入

v

直到

的边(u ,v )属于E

中找一条代价最小的边