2017年北京师范大学生命科学学院978数据结构考研题库
● 摘要
一、填空题
1. 设数组储,则元素为_____。
【答案】9174;8788
【解析】设一个元素的行标为i ,列标为j 。若以行序为主存储顺序,
则它的存储地址为
若以列序为主存储顺序,则它的存储地址为
2. 检索是为了在文件中寻找满足一定条件的记录而设置的操作。检索可以按_____检索。也可以按_____检索;按_____检索又可以有_____检索和_____检索。
【答案】关键字;记录号;记录号;顺序;直接
3. 如下的算法分别是后序线索二叉树求给定结点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 )
4. 设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。
①以下是该函数的程序段,请将未完成的部分填入,使之完整。
第 2 页,共 55 页
的基地址为2000,每个元素占2个存储单元,若以行序为主序顺序存
的存储地址为_____;若以列序为主序顺序存储,则元素
的存储地址
②执行程序,f (6,4)=_____。 【答案】①1; 1; f (m ,n -1); n ②9 5.
【答案】5
6. 若用n 表示图中顶点数目,则有_____条边的无向图成为完全图。
【答案】n (n-l )/2
【解析】无向完全图中任意一个顶点都和其他n-1个顶点都有一条边,即为n (n-l )。又因为每条边重复出现两次,所有无向完全图的边数为n (n-l )/2。
7. 在双向循环链表中,向P 所指的结点之后插入指针f 所指的结点,其操作是_____、_____、_____、_____。
【答案】
8. 在n 个顶点的非空无向图中,最多有_____个连通分量。
【答案】n
【解析】当n 个顶点之间没有边,都是孤立的顶点时,有n 个连通分量。
已
.
求REPLACE (S ,V , m )=_____。
【答案】
10.n 个顶点的有向图用邻接矩阵array 表示,下面是其拓扑排序算法,试补充完整。
注:(1)图的顶点号从0开始计;
(2)indegree 是有n 个分量的一维数组,放顶点的入度, (3)函数crein 用于记算顶点入度;
(4)有三个函数push (data ), pop( ), check( )其含义为数据data 入浅,出栈和测试栈是否空(不空返回1, 否则0)。
第 3 页,共 55 页
=_____
9知
)
.
【答案】0; j; i; 0; indegree[i]=0; [vex][i]; k==l; indegree[i]=0
【解析】有向图用邻接矩阵表示时,顶点i 的入度等于第i 列的所有元素之和。拓扑排序过程:首先将入度 为0的顶点全部进栈。然后弹出栈顶结点,并将与弹出的顶点相连的其它顶点的入度 减一,然后判断这些顶点的 入度是否为零,如果为零,继续进栈,重复这些操作,完成拓扑排序。
11.在图G 的邻接表表示中,每个顶点邻接表中所含的结点数,对于无向图来说等于该顶点的_____; 对于有向图来说等于该顶点的_____。
【答案】度;出度
12.求最短路径的Dijkstra 算法的时间复杂度为_____。
【答案】
13.顺序存储结构是通过_____表示元素之间的关系的;链式存储结构是通过_____表示元素之间的关系的。
【答案】物理上相邻;指针
【解析】顺序存储结构是通过物理位置表示元素之间的关系的,链式存储结构通过指针表示元素之间的关系。
14.在进行入栈运算时应先判别栈是否_____:在进行出栈运算时应先判别栈是否_____:当栈中元素为n 个,进行入栈运算时发生上溢,则说明该栈的最大容量为_____。为了增加内存空间的利用率和减少溢出的可能性,由两个栈共享一片连续的空间时,应将两栈的_____分别设在内存空间的两端,这样只有当_____时才产生溢出。
【答案】满;空;n ; 栈底;两栈顶指针相邻(即值之差的绝对值为1)
第 4 页,共 55 页
;
(“图有回路”)