2012年1月11日

2012年1月11日
2012年01月11日
   中国 科学技术大学
  一九九八年招收硕士学位研究生入学考试试题
  试题名称:程序设计
  要求: 算法设计题目要求写注解,否则扣分. 写出正确的设计思想和伪代码给分.
  一. 填空(15分,每空1分)
  1. n个顶点的无向图的邻接矩阵至少有____非零元素;n个顶点的有向图是强连通图至少有____条边.
  2. 折半查找的存储结构必须是_____,并且其中存储的关键字必须____;查找成功与不成功的最大比较次数是____.(设关键字总数为n)
  3. 设广义表L=( ( ),( (y), B), L),则L的长度是______,深度是_____,head(L)是______, tail(L)是______.
  4. 设高度为h的二叉树无度为1的结点,则此类二叉树至少有____个结点,至多有_____个结点.
  5. 若要将内存中建立的二叉树(不一定是完全二叉树),写到磁盘文件中,则采用_____表示为宜.
  6. 假定有k个关键字互为同义词,若用线性探测法把这k个关键字存入散列表中,至少要进行___次探测.
  7. 在基于关键字比较且时间为O( n n)的排序中,若要求排序是稳定的,则可选用___排序;若要求就地排序(及辅助空间为O(1)),则可选用___排序 .
  二. 请在下列各题中选择一个正确的答案(每个选择2分,共20分)
  1. 在一颗m阶的B树中:
  (1) 若在某结点中插入一个新关键字而引起结点的分裂,则该结点中原有关键字的个数是:
  (a) m个(b) m 1个(c) m 2 个
  (2) 若在某结点中删除一个新关键字而导致结点的合并,则该结点中原有关键字的个数是:
  (a) 个(b) 个(c) 个
  2. 用ISAM组织文件适合于
  (a) 磁带机(b) 磁盘
  3. 是否存在这样的二叉树,对它采用任何次序的遍历,其遍历产生的节点序列相同?
  (a) 存在(b) 不存在
  4. 若一个有向图的邻接矩阵中,主对角线以下的元素均为零,则该图的拓扑有序序列:
  (a) 不存在(b) 存在
  5. 对外部排序的k路平衡归并,采用败者树时,归并效率与k
  (a) 有关(b) 无关
  6. 设二叉排序树中关键字由1至1000的整数构成,现要检索关键字为363的结点,下述关键字序列哪一个不可能是二叉排序树上搜索到的序列?
  (a) 2, 252, 401, 398, 330, 344, 397, 363
  (b) 924, 220, 911, 244, 898, 258, 362, 363
  (c) 952, 202, 911, 240, 912, 245, 363
  (d) 2, 399, 387, 219, 266, 382, 381, 278, 363
  7. 已知待排序的n个元素可分为n/k个组,每个组包含k个元素,且任一组内的各元素均分别大于前一组的所有元素并小于后一组内的所有元素,若采用基于比较的排序,其时间下界应为:
  (a) O(n n)(b) O(n k)(c) O(k n)(d) O(k k)
  8. 下述二叉树中,哪一种满足性质:从任一结点出发到根的路径上所经过的结点序列按其关键字有序:
  (a) 二叉排序树(b) 哈夫曼树(c) AVL树(d) 堆
  9. 将两个各有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 A[j] , 则偶对(i,j)称为A的一个逆.
  (1) 列出数组[3, 4, 9, 7, 1]的五个逆;(2分) (2) 元素取自集合{1, 2, 3, … n } 的所有数组中,哪一个数组具有最多的逆,其中数是多少? (3分)
  (3) 插入排序的运行时间和数组中逆的数目有何关系? (3分)
  (4) 写一个算法将两个有序段 r[low..mid] 和 r[mid + 1..high] 归并成一个有序段,并要求在归并的同时求出归并前r[low..high]中逆的总数. (15分)
  (5) 利用(4)中的归并算法来对r[1..n]进行归并排序,并同时求出原数组r[1..n]中逆的总数,其时间复杂度是多少? (2分)
  六. (共15分) 一个有向图G=(V,E)的平方图 满足下述性质:
  (u,w) ∈ 当且仅当存在某个顶点v∈ V, 使得(u,v) ∈ E 且 (v,w) ∈ E.
  写一个算法从给定的G求出 , G 和可 分别用两个邻接表表示.
  中国科学技术大学
  一九九八年招收硕士学位研究生入学考试试题
  试题名称:编译原利于操作系统
  一. (10分) 某操作系统下合法的文件名为
  device:name.extension
  其中第一部分( device: )和第三部分( .extension )可省略,若device,name和extension都是字母串,长度不限,但至少为1,画出识别这种文件名的确定有限自动机.
  二. (10分) 下面文法是否为LL(1)文法? 说明理由.
  S ---> A B | P Q xA ---> x yB ---> b c
  P ---> d P |εQ ---> a Q |ε
  三. (10分) 把表达式
  -( a + b ) * ( c + d ) + ( a + b + c )
  翻译成四元式.
  四. (10分) UNIX下的C编译命令cc的选择项g和O的解释如下,其中dbx的解释是“dbx is an utility for source-level debugging and excution of programs written in C ”.试说明为什么用了选择项g后,选择项O遍被忽略.
  -gProduce additional symbol table information for
  dbx(l) and dbxtool(l) and pass lg option to ld(l)
  (so as to include the g library, that is :
  /usr/lib/libg.a). When this option is given, the O and R options are suppressed.
  -O[level]Optimize the object code. Ignored when either g, -go,
  or a is used. …
  五. (10分) 下面程序在SUN工作站上运行时陷入死循环,试说明原因.如果将第6行的long *p 改成 short *p, 并且将第16行long k改成short k后,loop中的循环体执行一次便停止了.试说明原因.
  Main()
  {
  addr();
  loop();
  }
  long *p;
  loop()
  {long i,j;
  j=0;
  for(i=0;ic:二分查找;d:二叉排序树
  2. 对一般二叉树而言,求节点按某种序列的前趋节点变得容易的线索二叉树是___和____.
  a: 前序线索二叉树;b: 中序线索二叉树;c: 后序线索二叉树
  3. 若一个有向图具有拓扑排序序列,那么它的邻接矩阵必定为____.
  a: 对称矩阵;b: 稀疏矩阵;c: 三角矩阵;d: 一般矩阵
  4. 采用开址定址法解决冲突的哈希查找中,发生集聚的原因主要是____.
  a: 数据元素过多;b: 负载因子过大;c: 哈希函数选择不当;
  d: 解决冲突的算法选择不好.
  5. 对n个关键字的文件进行内部排序,在最好情况下,最快的排序方法是____;相应的时间复杂度为_____;该算法的稳定性是_______.
  A: ①快速排序;②插入排序;③归并排序;④选择排序
  B: ① O( );② O(n);③ O(n n);④ O(n
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
南理工初试试题,很完整的试题哦南京理工大学课程考试试卷 (学生考试用) 课程名称: 数据结构 学分: 3 大纲编号 062204 试卷编号: 考试方式: 闭卷 满分分值: 100 考试时间: 120 分钟 组卷期: 2006518 组卷教师(签字) 张宏 审定人(签字) 王树梅 学生班级: 计算机学院 04级 学生学号: 学生姓名: 一、 选择题(1.5*20=30分) 1.若以{4,5,6,3,8}作为叶子结点的权值构造哈夫曼树,则带权路径长度是 A) 55 B)68 C)59 D)28 2. 无向图G=(V,E),其中:V={ a,b,c,d,e,f} , E={(a,b),(a,e),(a,c),(b,e),(c,f),(f,d),(e,d)},对该图进行广度优先遍历,得到的顶点序列正确的是 A) a,b,e,c,d,f B) a,c,f,e,b,d C) a,e,b,c,f,d D) a,e,d,f,c,b 3. 对关键字码集合K={53,30,37,12,45,24,96},从空二叉树出发建立与集合K对应的二叉排序树,若希望得到树的高度最小,应选择下列哪个输入序列 。 A)45,24,53,12,37,96,30 B)12,24,30,37,45,53,96 C)37,24,12,30,53,45,96 D)30,24,12,37,45,96,53 4. 已知一组数{20,8,6,2,30,1}的排序过程为: (1)20,8,6,2,30,1 (2)1,8,6,2,30,20 (3)1,2,6,8,30,20 (4)1,2,6,8,20,30 问它是下面那一种排序: A)快速排序 B) 直接插入排序 C) 起泡排序 D) 选择排序 5.计算机算法必须具备输入、输出和 等五个特征。 A) 可行性、可移植性和可扩充性 B)可行性、确定性和有穷性 C) 确定性、有穷性和稳定性 D)易读性、稳定性和安全性 6.设哈希表长为14,哈希函数是H(key)=key,表中已有数据的关键字为15,38,61,84共四个,现要将关键字为26的结点加到表中,用二次探测再散列法解决冲突,则放入的位置是 A) 8 B) 3 C)2 D)9 7.在一个单链表中,若要删除p所指结点的后继结点,则执行 。 A) p=p->next; p->next=p->next->next B) free(p->next) (C语言格式) 或 delete p->next (C++语言格式) C) p=p->next->next; D) p->next=p->next->next 8. 数组A的每个元素需要4个字节存放,数组有8行 10列,若数组以行为主顺序存放在内存SA开始的存储区中,则A中8行5列的元素的位置是 A) SA+74 B)SA+292 C)SA+296 D)SA+300 9-10.在一棵7阶B树中,若在某结点中插入一个新关键字而引起该结点分裂,则此结点中原有 (1) 个关键字;若在某结点中删去一个关键字而导致结点合并,则该结点中原有的关键字的个数是 (2) 。 (1) A)6 B)5 C)4 D)3 (2) A)4 B)3 C)2 D)1 11.已知四个元素a,b,c,d依次进栈,进栈过程中可出栈,下面那一种出栈顺序是不正确的 A)a,d,c,b B)b,c,d,a C)c,a,d,b D)c,d,b,a 12.队列操作的原则是 。 A) 先进先出 B) 后进先出 C) 只能进行插入 D)只能进行删除 13.在有n 个结点的二叉链表中,值为空链域的个数为 A)n-1 B)2n-1 C)n+1 D)2n+1 14.具有1080个结点的完全二叉树的深度为 A) 12 B)10 C)11 D)13 15.若已知一个栈的入栈序列是元素1,2,3,....,n,其输出序列为p1,p2,p3,…pn,若p1是n,则pi是( ) A) i B)n-i C)n-i+1 D)不确定 16.对于一个具有n个顶点的无向图,若采用邻接矩阵表示,则该矩阵的大小是
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值