2017年浙江理工大学理学院965软件基础之数据结构考研冲刺密押题
● 摘要
一、填空题
1. 当两个栈共享一存储区时,栈利用一维数组当栈1空时
,
【答案】
为_____,栈2空时
,
表示,两栈顶指针为
则
为_____,栈满时为_____。
【解析】共享栈的栈底在共享存储区的两端,当栈满时栈顶相邻。
2. 对于双向链表,在两个结点之间插入一个新结点需修改的指针共_____个,单链表为_____个。
【答案】4; 2
3. 在基于关键字比较且时间为O (nl 〇g2n )的排序中,若要求排序是稳定的,则可选用_____,则可选用_____排序。 排序;若要求就地排序(及辅助空间为0(1))
【答案】归并;堆
4. 无用单元是指_____,例_____
【答案】用户不再使用而系统没有回收的结构和变量;
5. 设二维数组A 的行和列的下标范围分别为
【答案】
当其值为
和
每个元素占2个单元,按行优先顺处的元素为_____。
序存储,第一个元素的存储起始位置为b ,则存储位置为
【解析】令这个元素的行标为i ,列标为j 。则它的存储位置是
时,则i=2,j=3。 6. 如下的算法分别是后序线索二叉树求给定结点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 )
7. 在双向循环链表中,向P 所指的结点之后插入指针f 所指的结点,其操作是_____、_____、_____、_____。
【答案】
8. 栈是_____的线性表,其运算遵循_____的原则。
;后进先出 【答案】操作受限(或限定仅在表尾进行插入和删除操作)
9. —棵左子树为空的二叉树在前序线索化后,其中的空链域的个数为 _____。
【答案】2
【解析】只有根结点的做指针为空和最右边的叶结点的右指针为空。
10.在单链表中设置头结点的作用是_____。
【答案】方便运算
二、选择题
11.下列选项中,不可能在用户态发生的事件是( )。
A. 系统调用 B. 外部中断 C. 进程切换 D. 缺页 【答案】C 。
【解析】我们在学习操作系统中知道,任何一个进程在现代操作系统中为了共享和保护,设,在用户态运行用户的程序,在内核定了用户态和内核态(可以通过设置软、硬件标志位来实现)
运行系统的程序。所以,从选 项来看,系统调用可以在任何态发生,用户可以发起系统调用,系统也可以;外部中断是不可控的,也会在任何时刻发生,缺页的发生也是不可控的,可以发生在用户代码之间;而进程切换却不会在用户态发生。我们可以考虑一下情形,进程切换是在什么时候发生的,进程切换前必定运行的是进程调度,只有进程调度选择了下一次被调度的进程,进程
切换才可以进行。进程调度是scheduler , 进程切换是dispather , 这体现了现代操作系统策略与机制,必定分离的设计思想。所以,进程切换必定不会在用户态发生(所谓发生指其起始的源头时刻)是在内核态(进程调度)发生的。
12.下列说法不正确的是( )。
A. 图的遍历是从给定的源点出发每个顶点仅被访问一次 B. 遍历的基本方法有两种:深度遍历和广度遍历 C. 图的深度遍历不适用于有向图 D. 图的深度遍历是一个递归过程 【答案】C
【解析】图的遍历是指从图中的某一个顶点出发,按照某种搜索算法沿着图中的边对图中的所有顶点访问一次且仅访问一次。图的深度遍历类似于树的先序遍历,不仅适合无向图,也适合于有向图。
13.有向带权图如题图所示,若采用迪杰斯特拉(Dijkstra )算法求从源点a 到其他各顶点的最短路径,则得到的第一条最短路径的目标顶点是b ,第二条最短路径的目标顶点是c ,后续得到的其余各最短路径的目标顶点依次是( )。
题图有向带权图
A.d , e , f
B.e , d , f C.f , d , e D.f , e , d 【答案】C 。
【解析】本题主要考查Dijkstra 算法的思想和解题步骤。题目执行算法过程中各步的状态如下表所示。
执行Dijkstra 算法过程中各步的状态表,故后续目标顶点依次为f ,d , e 。