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

2018年北京市培养单位声学研究所866计算机原理之数据结构考研基础五套测试题

  摘要

目录

2018年北京市培养单位声学研究所866计算机原理之数据结构考研基础五套测试题(一) ... 2 2018年北京市培养单位声学研究所866计算机原理之数据结构考研基础五套测试题(二) . 10 2018年北京市培养单位声学研究所866计算机原理之数据结构考研基础五套测试题(三) . 16 2018年北京市培养单位声学研究所866计算机原理之数据结构考研基础五套测试题(四) . 24 2018年北京市培养单位声学研究所866计算机原理之数据结构考研基础五套测试题(五) . 31

一、算法设计题

1. 图G 有n 个点,利用从某个源点到其余各点最短路径算法思想,设计一产生G 的最小生成树的算法。

【答案】算法如下:

利用从源点v0到其余各点的最短路径的思想,产生以邻接矩阵表示的图G 的最小生成

数组存放生成树

数组存放顶点是否找到最短路径

初始化, 设顶点信息就是编号

从v0开始,求其最小生成树

是尚未到最小生成树的顶点的集合

循环n -1次

顶点u 已找到最短路径下,下面修改相关顶点的最短路径

算法结束

2. 写出按后序序列遍历中序线索树的算法。

【答案】算法如下:

求结点t 最左子孙的左线索

沿左分支向下

求结点t 最右子孙的右线索

沿右分支向下

若t 是

后序遍历中序线索二叉树

bt

沿左分支向下

左孩子为线索,右孩子为链,相当从左返回

P 为叶子, 相当从右返回

访问结点

修改P 指向双亲

是左子女,用最右子孙的右线索找双亲

.

转向当前结点右分支

结束

3. 假设K1,... ,Kn 是n 个关键词,试解答:

(1)试用二叉查找树的插入算法建立一棵二叉查找树,即当关键词的插入次序为K1,K2,…,Kn 时,用算法建立一棵以llink —rlink 链接表示的二叉查找树。

(2)设计一个算法,打印出该二叉查找树的嵌套括号表示结构。例如,K1=B,K2=A,K3=D,K4=C,K5=E,则用二叉查找树的插入算法建立如图所示的二叉查找树。

的右孩子,返回1, 否则返回

该二叉查找树的嵌套括号表示结构为:B(A,D(C,E)) 。 【答案】(1)算法如下:

在二叉排序树bst 上査找值为K 的结点,返回其双亲结点指针f

以存储在数组R 中的n 个关键字,建立一棵初始为空的二叉排序树

不再插入相同值结点

.

申请结点空间

根结点

左子女

右子女

结束算法 (2)算法如下:

以嵌套括号表示结构打印二叉排序树

打印根结点值

左子女和右子女中至少有一个不空

输出左栝号

输出左子树的嵌套括号表示

若右子树不空,输出逗号

输出右子树的嵌套括号表示

输出右括号

4. 设从键盘输入一整数的序列:a 1,a 2,a 3,... ,a n ,试编写算法实现:用栈结构存储输入的整数,

时,将

入栈;当

时,输出栈顶整数并出栈。算法应对异常情况(入栈满等) 给

出相应的信息。

【答案】算法如下

:

栈空间容量

//s是元素为整数的栈,本算法进行入栈和出栈操作