您的位置:首页
在职硕士新闻
正文
字体:

中科院计算机技术研究所1999年硕士生入学试题 数据结构与程序设计

来源:编辑:发布时间:2005年10月14日

内容导读:

一、选择题 (20 分 每空2分)
1.___ 的遍历仍需要栈的支持。
1.前序线索树 2.中序线索树 3.后序线索树

2.若度为m的哈夫曼树中,其叶结点个数为n,则非叶结点的个数为___。
1.n-1 2.[n/m]-1 3.[(n-1)/(m-1)] 4.[n/(m-1)]-1 5.[(n+1)/(m+1)]-1

3.最优二叉树(哈夫曼树)、最优查找树均为平均查找路径长度∑wh最小的树,其中对最优二叉树,n表示___,对最优查找树,n表示___; 构造这两种树均___。
1.结点数 2.叶结点数 3.非叶结点数 4.度为二的结点数 5.需要一张n各关键字的有序表

6.需要对n个关键字进行动态插入 7.需要n个关键字的查找概率表 8.不许要任何前提

4.对于前序遍历与中序遍历结果相同的二叉树为___; 对于前序遍历与后序遍历结果相同的二叉树为___。
1.一般二叉树 2.只有根结点的二叉树 3.根结点无左孩子的二叉树

4.根接点无右孩子的二叉树 5.所有结点只有左子树的二叉树 6所有结点只有右子树的二叉树

5.m路B+树是一棵___, 其结点中关键字最多为___个, 最少为___个。
1.m路平衡查找树 2.m路平衡索引树 3.m路trie树 4.m路键树 5.m-1 6.m 7 m+1 8.[m/2]-1
9.[m/2] 10.[m/2]+1

二、填空题(10 分,每空一分)
1.对于给定的n个元素,可以构造出的逻辑结构有___,___,___,___四种。

2.具有n个关键字的B-树的查找路径长度不会大于___。

3.克鲁斯卡尔算法的时间复杂度为___, 他对___图较为适合。

4.深度为k(设根的层数为1)的完全二叉树至少有___个结点, 至多有___个结点, k和结点数n之间的关系是___。

三、问答题(10 分,每题5分)

1.一棵非空的有向树中恰有一个顶点入度为0,其他顶点入度为1.但一个恰有一个顶点的入度为0, 其他顶点入度为一的有向图却不一定是一棵有向树。请举例说明之。

2.若有n个元素以构成一个小根堆,那么如果增加一个元素为K(n+1),请用文字简要 说明你如何在log2(n) 的时间内将其重新调整为一个堆?

四、阅读下述程序,指出程序的输出。(10 分)

void g(int**);
main(){
  int line[100],i;
  int *p=line;
  for(i=0;i<100;i++){
    *p=i;
    g(&p);
  }
  for(i=0;i<100;I++)printf("%d\n",line[i]);
}
void g(int**p){
  (**p)++;
  (*p)++;
}
五、编程题。(共50分,要求写出设计思想和程序注解)

1.设一单向链表的头指针为head,链表的记录中包含着整数类型的key域,试设计算法, 将此链表的记录按照key递增的次序进行就地排序.(10分)

2.给定一个整数数组b[0..N-1], b中连续相等元素构成的子序列称为平台.试设计算法,求出b中最长平台的长度.(20分)

3.自由树(即无环连通图) T=(V,E)的直径是树中所有点对间最短路径长度的最大值,即T的直径定义为MAX d(u,v) 这里d(u,v)表示顶点u 到顶点v的最短路径长度(路径长度为路径中所含的边数).试写一算法求T的直径,并分析算法的时间复杂度(时间复杂度越小得分越高)(20分)

热门标签: