2017年北京市培养单位光电研究院863计算机学科综合(专业)之数据结构考研题库
● 摘要
一、填空题
1. 如下的算法分别是后序线索二叉树求给定结点node 的前驱结点与后继结点的算法,请在算法,其空格处填上正确的语句。设线索二叉树的结点数据结构为(lflag ,lcft ,data ,right ,rflag )中:lflag=0,lcft 指向其左孩子,lflag=1,left 指向其前驱:rflag=0,right 指向其右孩子,rflag=1,right 指向其后继。
Prior (node , x ) { if(node !=null)
If ( (1) ) *x=node->right;else * x-node->left;
}
next (bt , node, x )/*bt是二叉树的树根*/ { (2) ;
if (node->rflag)(3); else {do t=*x;;
while (*x==node ); *x=t; } }
【答案】nodc->rflag==O; *x=ht; *x=nodc->right; prior (t , X )
2. 在一个无向图的的邻接表中,若表结点的个数是m , 则图中边的条数是_____条。
【答案】m/2
【解析】对于无向图,在邻接表中,如果存在n 条边,则会有2n 个表结点。
3. 在一个具有n 个单元的顺序栈中,假定以地址高端(即下标为n 的单元)作为栈底,以top 作为栈顶指针,则当向栈中压入一个元素时,top 的变化是top=_____。
【答案】
【解析】由于栈底在地址高端,栈中压入一个元素时,栈顶向地址底端移动一个单位,
所以
4. 阅读下列程序,指出其功能,并写出空格处应填上的语句。
【答案】
【解析】本题是在哈希表ht[]中插入值为的元素,如该元素已在哈希表中,报告出错。
5. 设有个结点的完全二叉树顺序存放在向量中,其下标值最大的分支结点为_____。
【答案】
【解析】最大的分支结点是最后一个叶子结点的父结点。
6. 下列程序是快速排序的非递归算法,请填写适当的语句,完成该功能。
【答案】
【解析】快速排序(quicksort )的基本思想是,通过一趟排序将待排记录分割成独立的两部分,其中一部分记录的关键字均比另一部分记录的关键字小,则可分别对这两部分记录继续进行排序,以达到整个序列有序。
7. —棵深度为k 的平衡二叉树, 其每个非终端结点的平衡因子均为0,则该树共有_____个结点。
【答案】树。故结点个数为
8. 线性表
【答案】(n -1)/2
【解析】删除第一个元素需要移动n -i 次,以此类推,删除最后一个元素需要移动0次。平 均次数为
9. 数据结构是研讨数据的_____和_____以及它们之间的相互关系,并对与这种结构定义相应的_____,设计出相应的_____。
;算法 【答案】逻辑结构;物理结构;操作(运算)
10.顺序存储结构是通过_____表示元素之间的关系的;链式存储结构是通过_____表示元素之间的关系的。
【答案】物理上相邻;指针
【解析】顺序存储结构是通过物理位置表示元素之间的关系的,链式存储结构通过指针表示元素之间的关系。
用数组表示,假定删除表中任一元素的概率相同,则删除一个元素
【解析】每个非终端结点都是0表示该平衡二叉树没有高度落差。也就是说它是一棵满二叉
平均需要移动元素的个数是_____。
二、判断题
11.采用线性探测法处理散列时的冲突,当从哈希表删除一个记录时,不应将这个记录的所在位置置空,因为这会影响以后的查找。( )
【答案】√
【解析】从哈希表删除一个记录,不是将这个记录的位置置空,而是设置一个标记,标记这个元素是无效的了。
12.—个排序算法是否稳定,是指该算法在各种情况下的时间效率是否相差不大。( )
【答案】×
【解析】排序的稳定性指:假定在待排序的记录序列中,存在多个具有相同的关键字的记录,若经过排序,这些记录的相对次序保持不变,即在原序列中,
且ri 在rj 之前,而在排序后的
序列中,ri 仍在rj 之前,则称这种排序算法是稳定的;否则称为不稳定的。
13.当改变网上某一关键路径上任一关键活动后,必将产生不同的关键路径。( )
【答案】×
【解析】当改变任意关键路径上的关键活动之后,这个活动可能还是关键活动,因此不会产