2018年北京工商大学计算机与信息工程学院818数据结构考研基础五套测试题
● 摘要
一、填空题
1. 设m 、n 均为自然数,m 可表示为一些不超过n 的自然数之和,f(m,n) 为这种表示方式的数目。例f(5,3) =5, 有5种表示方式:3+2, 3+1+1,2+2+1,2+1+1+1,1+1+1+1+1。
①以下是该函数的程序段,请将未完成的部分填入,使之完整。
_____
_____;
}
_____;
}
,
_____)
②执行程序,f(6,4) =_____。 【答案】①1; 1; f(m, n ﹣1) ; n ②9
2. 在顺序存储的二叉树中,编号为i 和j 的两个结点处在同一层的条件是_____。
【答案】要加“虚结点”。
设编号为i 和j 的结点在顺序存储中的下标为s 和t , 则结点i 和j 在同一层上的条件是
。
3. 阅读下列程序,指出其功能,并写出空格处应填上的语句。
第 2 页,共 39 页
【解析】用顺序存储结构存储二叉树时,要按完全二叉树的形式存储,非完全二叉树存储时,
【答案】
【解析】本题是在哈希表中插入值为item 的元素,如该元素已在哈希表中,报告出错。
4. 求图的最小生成树有两种算法,_____算法适合于求稀疏图的最小生成树e
【答案】克鲁斯卡尔
【解析】克鲁斯卡尔算法是一种按权值的递增次序选择合适的边来构造最小生成树的方法,这种算法中,采用堆来存放边的集合,适合于边稀疏而顶点较多的图。
5. 在一个具有n 个单元的顺序栈中,假定以地址高端(即下标为n 的单元) 作为栈底,以top 作为栈顶指针,则当向栈中压入一个元素时,top 的变化是top =_____。
【答案】top ﹣1
【解析】由于栈底在地址高端,栈中压入一个元素时,栈顶向地址底端移动一个单位,所以top ﹣1。
6. 堆是一种有用的数据结构。堆排序是一种_____排序,堆实质上是一棵_____结点的层次序列。对含有N 个元素的序列进行排序时,堆排序的时间复杂度是_____,所需的附加存储结点是_____。关键码序列05, 23, 16, 68, 94, 72, 71, 73是否满足堆的险质_____ 。
【答案】选择;完全二叉树;
7. 建立索引文件的目的是_____。
【答案】提高查找速度
8. 设T 是一棵结点值为整数的二叉排序树,A 是一个任意给定的整数。在下面的算法中,free_tree(T)在对二叉排序树丁进行后序遍历时释放二又排序树T 的所有结点
;
,首先在二叉排序树T 中查找值为A 的结点,根据查找情况分别进行如下
处理:(1)若找不到值为A 的结点,则返回根结点的地址(2)若找到值为A 的结点,则删除以此结点为根的子树,并释放此子树中的所有结点,若值为A 的结点是查找树的根结点,删除后变成空的二叉树,则返NULL ; 否则返回根结点的地址。
第 3 页,共 39 页
;O(1);满足堆的性质
【答案】
9. 设二维数组A 的行和列的下标范围分别为[0:8]和[0:10],每个元素占2个单元,按行优先顺序存储,第一个元素的存储起始位置为b ,则存储位置为b+50处的元素为_____。
【答案】A[2][3]
【解析】令这个元素的行标为i ,列标为j 。则它的存储位置是(ll*i+j +l ﹣l)*2+b 。当其值为b +50时,则i =2,j =3。
10.当广义表中的每个元素都是原子时,广义表便成了_____。
【答案】线性表
【解析】如果每个元素都是原子,则元素不可分。此时的元素是只有一对一的关系,所以广义表变成了线性表。
二、单项选择题
11.已知串
A.0123 B.1123 C.1231 D.1211 【答案】A
其Next 数组值为( )。
【解析】KMP 算法的next 数组建立的原则
12.下列介质访问控制方法中, 可能发生冲突的是( )
A.CDMA B.CSMA C.TDMAC D.FDMA 【答案】B
【解析】介质访向控制协议中能够发生冲突的是CSMA 协议, 答案为B 。
13.给定二叉树如下图所示. 设N 代表二叉树的根,L 代表根结点的左子树,R 代表根结点的右子树. 若遍历后的结点序列为3,1,7,5,6,2,4,则其遍历方式是( ).
A.LRN B.NRL C.RLN D.RNL
第 4 页,共 39 页