2017年福建师范大学软件学院842软件工程专业基础综合考研题库
● 摘要
一、填空题
1. 数据结构中评价算法的两个重要指标是_____。
【答案】算法的时间复杂度和空间复杂度
2. 从平均时间性能而言,_____排序最佳。
【答案】快速
【解析】快速算法的平均时间复杂度为nlogn 。
3. 已知一循环队列的存储空间为其中队头和队尾指针分别为front 和rear , 则此循环队列判满的条件是( )
【答案】
4. 试利用下列栈和串的基本操作完成下述填空题。
initstack (S ) 置S 为空找; push (S , X ) 元素X 入找; pop (S ) 出栈操作; gettop (S ) 返回栈顶元素; sempty (S ) 判找空函数;
置串 判串 返回联接
empty (st ) 判串空函数
{若给定的表达式的前缀式pre 正确,本过程求得和它相应的表达式exp 并返回true , 否则exp 为空串,并返回false 。已知原表达式中不包含括弧,opset 为运算符的集合。)
第 2 页,共 59 页
为空串;
是否相等的函数;
之后的串;
length (st ) 返回串st 的长度;
sub (S , i , 1) 返回S 中第i 个字符;
注意:毎个空格只填一个语句。 【答案】(1)(2)(3)(4)(5)(6)(7)exp (8)(9)exp (10)(11
)(12)
取栈顶操作符 操作符取出后,出栈
将pre 的最后一个字符(操作数)加入到中缀式exp 的最后
若ch 是操作数且栈非空,则形成部分中缀表达式
栈S 初始化为空栈 串exp 初始化为空串 判取出字符是否是操作符
如ch 是运算符,则入操作符栈s 判栈8是否为空
若读出ch 是操作数且栈为空,则按出错处理
5. 一个算法具有5个特性:_____、_____、_____、有零个或多个输入、有一个或多个输出。
【答案】有穷性;确定性;可行性
6. 有向图G=(V ,E ), 其中V (G )=[0, 1,2,3,4, 5}, 用三元组表示弧及弧上的权d 。 E (G )为 E (G= {<0,5, 100>, <0,2,10>, <1,2,5>,<0,4, 30>,<4, 5, 60>,<3,5, 10>,<2. 3,50>, <4, 3, 20>},则从源点0到顶点3的最短路径长度是_____,经过的中间顶点是_____。
【答案】50; 4
7. 对单链表中元素按插入方法排序的C 语言描述算法如下,其中L 为链表头结点指针。请填充算法中标出的空白处,完成其功能。
第 3 页,共 59 页
【答案】(1)(2)(3)(4)(5)
置空链表,然后将原链表结点逐个插入到有序表中
当链表尚未到尾,p 为工作指针
查P 结点在链表中的插入位置,这时q 是工作指针
将P 结点链入链表中
是q 的前驱,u 是下个待插入结点的指针
8. 完善算法:求KMP 算法.next 数组。
END ; 【答案】
9. 有五个数据依次入栈:1,2, 3, 4, 5。在各种出栈的序列中,以3, 4先出栈的序列有_____。(3在4之前出栈)
【答案】3个
【解析】以3, 4先出栈的序列有34521、34215、34251共3个。
10.—棵左子树为空的二叉树在前序线索化后,其中的空链域的个数为 _____。
【答案】2
【解析】只有根结点的做指针为空和最右边的叶结点的右指针为空。
11.在一棵m 阶树中,若在某结点中插入一个新关键字而引起该结点分裂,则此结点中原有的关键字的个数是_____;若在某结点中删除一个关键字而导致结点合并,则该结点中原有的关键字的个数是_____。
【答案】
最少
【解析】m
阶树除根结点和叶子结点外,结点中关键字个数最多是
12.阅读下列程序说明和裎序,填充程序中的_____。
本程序采用非递归的方法,设立一个堆栈交换左、右子树的算法为:
第 4 页,共 59 页
【程序说明】本程序完成将二叉树中左、右孩子交换的操作。交换的结果如下所示(编科略)
存放还没有转换过的结点,它的栈顶指针为
。
相关内容
相关标签