2018年北京市培养单位计算技术研究所408计算机学科专业基础综合之数据结构考研仿真模拟五套题
● 摘要
一、算法设计题
1. 假设K1,... ,Kn 是n 个关键词,试解答:
(1)试用二叉查找树的插入算法建立一棵二叉查找树,即当关键词的插入次序为K1,K2,…,Kn 时,用算法建立一棵以llink —rlink 链接表示的二叉查找树。
(2)设计一个算法,打印出该二叉查找树的嵌套括号表示结构。例如,K1=B,K2=A,K3=D,K4=C,K5=E,则用二叉查找树的插入算法建立如图所示的二叉查找树。
图
该二叉查找树的嵌套括号表示结构为:B(A,D(C,E)) 。 【答案】(1)算法如下:
在二叉排序树bst 上査找值为K 的结点,返回其双亲结点指针
f
以存储在数组R 中的n 个关键字,建立一棵初始为空的二叉排序树
不再插入相同值结点
.
申请结点空间
根结点
左子女
右子女
结束算法 (2)算法如下:
以嵌套括号表示结构打印二叉排序树
打印根结点值
左子女和右子女中至少有一个不空
输出左栝号
输出左子树的嵌套括号表示
若右子树不空,输出逗号
输出右子树的嵌套括号表示
输出右括号
2. 设给定关键字输入序列为(100,90,120,60,78,35,42,31,15) 用哈希法散列0-10的地址区间。要求设计一合理的哈希函数;冲突时用链表法解决,写出哈希算法,并构造出哈希表,在等概率查找情况下查找成功的平均查找长度是多少?
【答案】算法如下:
关键字
链指针
用链地址法解决冲突,构造哈希表,哈希函数用
初始化
输入n(本例中n=9)
个关键字按题意x 互不相同
4等插入结点链入同义词表
构造的哈希表如图所示:
图构造的哈希表
查找成功时的平均查找长度
3. 给定一个整数数组求出b 中最长平台的长度。
【答案】算法如下:
//求具有N 个元素的整型数组b 中最长平台的长度。
//局部最长平台
//新平台起点
(“最长平台长度
4. 设从键盘输入一整数的序列:a 1,a 2,a 3,... ,a n ,试编写算法实现:用栈结构存储输入的整数,
当
时,将
入栈;当
时,输出栈顶整数并出栈。算法应对异常情况(入栈满等) 给
出相应的信息。
【答案】算法如下
:
栈空间容量
//s是元素为整数的栈,本算法进行入栈和出栈操作
//top为栈顶指针,定义top =0时为栈空
//n个整数序列进行处理
。
b 中连续的相等元素构成的子序列称为平台。试设计算法,
在b 数组中起始下标为”,1,
k)
相关内容
相关标签