2001 年数据结构与程序设计
试题内容:
一、试给出下列有关并查集(mfsets)的操作序列的运算结果:
union(1,2) , union(3,4) , union(3,5) , union(1,7) , union(3,6) , union(8,9) , union(1,8) ,
union(3,10) , union(3,11) , union(3,12) , union(3,13) , union(14,15) , union(16,0) ,
union(14,16) , union(1,3) , union(1,14)。( union 是合并运算,在以前的书中命名为 merge)
要求
(1) 对于 union(i,j),以 i 作为 j 的双亲; (5 分)
(2) 按 i 和 j 为根的树的高度实现 union(i,j),高度大者为高度小者的双亲; (5 分)
(3) 按 i 和 j 为根的树的结点个数实现 union(i,j),结点个数大者为结点个数小者的双亲; (5 分)
二、设在 4 地(A,B,C,D)之间架设有 6 座桥,如图所示:
要求从某一地出发,经过每座桥恰巧一次,最后仍回到原地
(1) 试就以上图形说明:此问题有解的条件是什么?!!(5 分)
(2) 设图中的顶点数为 n,试用 C 或 Pascal 描述与求解此问题有关的数据结构并编写一个算法,找出满足要
求的一条回路.!!!!(10 分)
三、针对以下情况确定非递归的归并排序的运行时间(数据比较次数与移动次数):
(1) 输入的 n 个数据全部有序;!!!!(5 分)
(2) 输入的 n 个数据全部逆向有序;!!!!(5 分)
(3) 随机地输入 n 个数据.!!!!(5 分)
四、简单回答有关 AVL 树的问题.
(1) 在有 N 个结点的 AVL 树中,为结点增加一个存放结点高度的数据成员,那么每一个结点需要增加多少个
字位(bit)?!!!!(5 分)
(2) 若每一个结点中的高度计数器有 8bit,那么这样的 AVL 树可以有多少层?最少有多少个关键码?!!!!(5
分)
五、设一个散列表包含 hashSize=13 个表项,.其下标从 0 到 12,采用线性探查法解决冲突. 请按以下要求,
将下列关键码散列到表中.
10 100 32 45 58 126 3 29 200 400 0
评论0
最新资源