中科大c语言试卷,中科大考研试题.doc

中国科学技术大学

一九九八年招收硕士学位研究生入学考试试题

试题名称:程序设计

要求: 算法设计题目要求写注解,否则扣分. 写出正确的设计思想和伪代码给分.

填空(15分,每空1分)

n个顶点的无向图的邻接矩阵至少有____非零元素;n个顶点的有向图是强连通图至少有____条边.

折半查找的存储结构必须是_____,并且其中存储的关键字必须____;查找成功与不成功的最大比较次数是____.(设关键字总数为n)

设广义表L=( ( ),( (y), B), L),则L的长度是______,深度是_____,head(L)是______, tail(L)是______.

设高度为h的二叉树无度为1的结点,则此类二叉树至少有____个结点,至多有_____个结点.

若要将内存中建立的二叉树(不一定是完全二叉树),写到磁盘文件中,则采用_____表示为宜.

假定有k个关键字互为同义词,若用线性探测法把这k个关键字存入散列表中,至少要进行___次探测.

在基于关键字比较且时间为O( nn)的排序中,若要求排序是稳定的,则可选用___排序;若要求就地排序(及辅助空间为O(1)),则可选用___排序 .

请在下列各题中选择一个正确的答案(每个选择2分,共20分)

在一颗m阶的B树中:

若在某结点中插入一个新关键字而引起结点的分裂,则该结点中原有关键字的个数是:

(a) m个(b) m – 1个(c) m – 2 个

若在某结点中删除一个新关键字而导致结点的合并,则该结点中原有关键字的个数是:

(a) 个(b) 个(c) 个

用ISAM组织文件适合于

(a) 磁带机(b) 磁盘

是否存在这样的二叉树,对它采用任何次序的遍历,其遍历产生的节点序列相同?

(a) 存在(b) 不存在

若一个有向图的邻接矩阵中,主对角线以下的元素均为零,则该图的拓扑有序序列:

(a) 不存在(b) 存在

对外部排序的k路平衡归并,采用败者树时,归并效率与k

(a) 有关(b) 无关

设二叉排序树中关键字由1至1000的整数构成,现要检索关键字为363的结点,下述关键字序列哪一个不可能是二叉排序树上搜索到的序列?

2, 252, 401, 398, 330, 344, 397, 363

924, 220, 911, 244, 898, 258, 362, 363

952, 202, 911, 240, 912, 245, 363

2, 399, 387, 219, 266, 382, 381, 278, 363

已知待排序的n个元素可分为n/k个组,每个组包含k个元素,且任一组内的各元素均分别大于前一组的所有元素并小于后一组内的所有元素,若采用基于比较的排序,其时间下界应为:

(a) O(nn)(b) O(nk)(c) O(kn)(d) O(kk)

下述二叉树中,哪一种满足性质:从任一结点出发到根的路径上所经过的结点序列按其关键字有序:

(a) 二叉排序树(b) 哈夫曼树(c) AVL树(d) 堆

将两个各有n个元素的有序表归并成一个有序表,其最多的比较次数是:

(a) 2n(b) n(c) 2n – 1

(共15分)Fibonacci树是一种特殊的二叉树,下面给出构造该树的一种算法:

procedureFibonacciTree(d:integer ; Var T:binarytree)

{//d是 Fibonacci树的深度

if d=0 then T := nil

else

{new(T);

if d=1 then { T^.leftptr:=nil; T^.rightptr:=nil }

else {// d>=2

FibonacciTree(d – 2, T^.leftptr);

FibonacciTree(d – 1, T^.rightptr); }

}

}

(1) 画出深度为4的Fibonacci树(即用d=4调用上述算法的结果) (7分)

(2) 从你画的树中分析深度d的Fibonacci树中结点总数和Fibonacci数的关系.Fibonacci数定义如下:

= 1 , = 1

= + n>1

(3) 你所画出的Fibonacci树是否为平衡二叉树?若是,它是否为同样深度的平衡二叉树中节点数目最少的一种? (4分)

证明若二叉排序数中的一个结点存在两个孩子,则它的中序后继节点没有左孩子, 则它的中序前趋节点没有右孩子. (10分)

(共25分) 设数组A[1..n]含有n个互不相同的数,若 i

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值