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

2017年山东师范大学管理科学与工程学院836数据结构A考研题库

  摘要

一、填空题

1. 中缀式运算结果为_____。

【答案】

【解析】中缀式相当于中序遍历,前缀式相当于前序遍历,后缀式相当于后序遍历。

2. 在图G 的邻接表表示中,每个顶点邻接表中所含的结点数,对于无向图来说等于该顶点的_____; 对于有向图来说等于该顶点的_____。

【答案】度;出度

3. 设T 和P 是两个给定的串,在T 中寻找等于P 的子串的过程称为_____,又称P 为_____。

【答案】模式匹配;模式串

4. 设有个结点的完全二叉树顺序存放在向量

【答案】

中,其下标值最大的分支结点为_____。

对应的前缀式为_____,若

则后缀式

【解析】最大的分支结点是最后一个叶子结点的父结点。

5. 建立索引文件的目的是_____。

【答案】提高查找速度

6. 外排序的基本操作过程是_____和_____。

;归并 【答案】生成有序归并段(顺串)

7. 用循环链表表示的队列长度为n ,若只设头指针,则出队和入队的时间复杂度分别是_____和_____;若只设尾指针,则出队和入队的时间复杂度分别是_____和_____。

【答案】

【解析】队列的出队操作即删除队头的元素,队列的入队操作即在队尾添加元素,循环链表只设头指针,出队时,只要把头结点的下一个结点删除就好了,入队时,要把新的结点插入队尾,必须把队列遍历,找到队尾指针,才能插入。循环队列只设尾指针,出队时只要把为指针的下一个结点或者下下个结点删除即可,入队时,只要在尾指针的后面插入新的结点,并更新尾结点即可。

8. 设二维数组A 的行和列的下标范围分别为

【答案】时,则i=2,j=3。

9

和每个元素占2个单元,按行优先顺处的元素为_____。

当其值为

序存储,第一个元素的存储起始位置为b ,则存储位置为

【解析】令这个元素的行标为i ,列标为j 。则它的存储位置是

求REPLACE (S ,V , m )=_____。

【答案】

10.对于双向链表,在两个结点之间插入一个新结点需修改的指针共_____个,单链表为_____个。

【答案】4; 2

二、算法设计题

11.写出算法,求出中序线索二叉树中给定值为X 的结点之后继结点,返回该后继结点的指针。线索树中结点结构为:(ltag ,lc ,data ,rC ,rtag )。其中,data 存放结点的值;lc 、rc 为指向左、右孩子或该结点前驱、 后继的指针,ltag 、rtag 为标志域,若值为0,则lc 、rc 为指向左、右孩子的指针;若值为1,则lc 、rc 为指向其 前驱、后继结点的指针。

【答案】算法如下:

//先在带头结点的中序线索二叉树T 中査找给定值为x 的结点,假定值为x 的结点存在

//设P 指向二叉树的根结点

结束

InOrder

//在中序线索二叉树T 中,求给定值为X 的结点的

后继结点

//首先在T 树上査找给定值为X 的结点,由p 指向

/ /若P 的右标志为1, 则P 的rc 指针指向其后继

//结点P 的右子树中最左边的结点是结点P 的中序后继 }//结束 AfterXnode.

12.设二叉排序树的各元素值均不相同,采用二叉链表作为存储结构,试分别设计递归和非递归算法按递减序打印所有左子树为空,右子树非空的结点的数据域的值。

【答案】(1)递归算法如下:

(2)非递归算法如下:

13.设计将数组

中所有的偶数移到奇数之前的算法。要求不增加存储空间,

且时间复杂性为

【答案】算法如下:

14.设排序二叉树中结点的结构为下述三个域构成:

给出结点数据的值;

点的地址。设序,实现将

给出本结点的左儿子结点的地址;

给出本结点的右儿子结

域为正整数,该二叉树根结点地址为T 。现给出一个正整数x 。请编写非递归程域之值小于等于x 的结点全部删除掉。

【答案】算法如下: