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

2018年军事医学科学院总后勤部卫生部药品仪器检验所836计算机应用之数据结构考研基础五套测试题

  摘要

一、填空题

1. 设有一个空枝,栈顶指针为1000H(十六进制) ,现有输入序列为1,2,3,4,5,经过PUSH ,PUSH ,POP ,PUSH ,POP ,PUSH ,PUSH 之后,输出序列是_____,而栈顶指针值是_____。设栈为顺序找,每个元素占4个字节。

【答案】23;100CH

2. 已知二叉排序树的左右子树均不为空,则_____上所有结点的值均小于它的根结点值,_____上所有结点的值均大于它的根结点的值。

【答案】左子树;右子树

【解析】二叉排序树(binary sort tree)或者是一棵空树,或者是具有下列性质的二叉树:①若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值;②若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值;③它的左、右子树也分别为二叉排序树。

3. 在双向循环链表中,向P 所指的结点之后插入指针f 所指的结点,其操作是_____、_____、_____、_____。

【答案】f ﹣>next =p ﹣>next ;f ﹣>prior =p ;p ﹣>next ﹣>prior =f ;p ﹣>next =f ;

4. 一个字符串中_____称为该串的子串。

【答案】任意个连续的字符组成的子序列

5. 表达式23+((12*3﹣2)/4+34,5/7) +108/9的后缀表达式是_____。 【答案】(表达式中的点(.)是数分隔符,如是三个数)

6. 当广义表中的每个元素都是原子时,广义表便成了_____。

【答案】线性表

【解析】如果每个元素都是原子,则元素不可分。此时的元素是只有一对一的关系,所以广义表变成了线性表。

7. 已知一循环队列的存储空间为

则此循环队列判满的条件是_____ 【答案】

,其中n >m ,队头和队尾指针分别为front 和rear ,

8. 对n 个元素的序列进行起泡排序时,最少的比较次数是_____。

【答案】n -1

【解析】如果序列是正序,冒泡排序第一次只要进行n -1次比较,发现没有移动元素,说明序列有序。

9. 高度为4的3阶B-树中,最多有_____个关键字。

【答案】26

【解析】第4层是叶结点,1层至3层每个结点两个关键字,每个节点的关键字达到最大时,关键字最多。

10.完善算法:求KMP 算法.next 数组。

k :=_____;next[1]:=0;

k :=_____;

END ;

【答案】0;next[k]

11.设广义表L =(( ),( )) ,则head(L)是_____tail(L)是_____L的长度是_____;深度是_____。

【答案】( );(( )) ;2;2

【解析】广义表的表头是表的第一个元素,表尾是除了第一个元素外其余的所有的元素构成的表;表的长度指表中元素的个数;表的深度指展开后括号的层数。

12.假定有k 个关键字互为同义词,若用线性探测再哈希法把这k 个关键字存入哈希表中,至少要进行_____次探测。 【答案】

【解析】当该关键字发生冲突时,用线性探测不会遇到别的关键字冲突,这个时候需要探测的次数最小。总次数为。

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

initstack(S)置S 为空栈;

push(S,X) 元素X 入栈;

pop(S)出栈操作;

gettop(S)返回栈顶元素;

sempty(S)判栈空函数;

setnull(St)置串St 为空串;

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

equal(S1,S 2) 判串S 1并S 2是否相等的函数;

concat(S1,S 2) 返回联接S 1和S 2之后的串;

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

empty(st)判串空函数

FUNCinvert(pre:string ;V ARexp :string) :boolean ;

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

)

_____;_____;

_____THEN_____

IF_____THEN_____

(_____,_____);

(_____,_____);

_____

_____THEN

注意:每个空格只填一个语句。

【答案】(1)initstack(S)//栈s 初始化为空栈

(2)setnull(exp)//串exp 初始化为空串

(3)chinopset//判取出字符是否是操作符

(4)push(s,ch)//如ch 是运算符,则入操作符栈s

(5)sempty(s)//判栈s 是否为空

(6)succ:=false//若读出ch 是操作数且栈为空,则按出错处理

(7)exp

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

(9)exp

(10)gettop(s)//取栈顶操作符