当前位置:问答库>考研试题

2018年浙江大学878计算机学科专业基础(含程序设计基础(C) 、数据结构)之数据结构考研核心题库

  摘要

一、填空题

1. 对单链表中元素按插入方法排序的C 语言描述算法如下,其中L 为链表头结点指针。请填充算法中标出的空白处,完成其功能。

:_____:

{_____)

(_____、

:_____;_____;p =u ;

【答案】(1)L﹣>next =NULL //置空链表,然后将原链表结点逐个插入到有序表中 (2)p!=NULL //当链表尚未到尾,p 为工作指针

(3)q!=NULL //查P 结点在链表中的插入位置,这时q 是工作指针 (4)p﹣>next =r ﹣>next //将P 结点链入链表中

(5)r﹣>next =p //r是q 的前驱,u 是下个待插入结点的指针

2. 对n 个记录的表

【答案】n (n-1) /2

【解析】第一次需要n -1次比较,第i 此需要n -i 此比较,所以共需要

3. 从平均时间性能而言,_____排序最佳。

【答案】快速

【解析】快速算法的平均时间复杂度为nlogn 。

4. G 是一个非连通无向图,共有28条边,则该图至少有_____个顶点。

【答案】9

【解析】求该非连通无向图的最少顶点数,则该图为一个孤立的顶点和一个完全连通图。

第 2 页,共 78 页

进行简单选择排序,所需进行的关键字间的比较次数为_____。

5. 当两个栈共享一存储区时,栈利用一维数组stack(1,,1) 表示,两栈顶指针为top[l]与top[2],则当栈1空时,top[l]为_____,栈2空时,top[2]为_____,栈满时为_____。

【答案】0;n+1;top[l]+l=top[2]

【解析】共享栈的栈底在共享存储区的两端,当栈满时栈顶相邻。

6. 对于双向链表,在两个结点之间插入一个新结点需修改的指针共_____个,单链表为_____个。

【答案】4;2

7. 按LSD 进行关键字排序,除最次位关键字之外,对每个关键字进行排序时,只能用_____的排序方法。

【答案】稳定

8. 在拓扑分类中,拓扑序列的最后一个顶点必定是_____的顶点。

【答案】出度为0

【解析】如果最后一个顶点的出度不为0, 则必定还有顶点存在,与题目所说的最后一个顶点矛盾,所有最后一个顶点的出度必定为零。

9. 以下是用类C 语言写出的算法,该算法将以二叉链表存储的二叉树中的叶结点按从左到右的顺序链成一个带头结点的双向循环链表,链接时,结点的Lchild 域作为前链域,指向结点的直接前驱,结点的Rchild 域作为后链域,指向结点的直接后继。算法中,使用一个顺序栈stack , 栈顶指针为top ,P ,t 为辅助指针,head 为双向循环链表的头指针。试填充算法中的空格,使算法完整。

【答案】

10.模式串

【答案】01122312

第 3 页,共 78 页

的next 函数值序列为_____。

二、单项选择题

11.某网络拓扑如下图所示, 路由器R1只有到达子网( )。

的路由。为使R1可以将IP 分

组正确地路由到图中所有子网, 则在R1中需要增加一条路由(目的网络, 子网掩码, 下一跳) 是

A. B. C. D.

【答案】D 因此是

【解析】首先从题目给出的路由表项可以确定下一跳肯定是路由器R1直接相连的R2的地址,

, 此时可以排除A 和B 两个选项了。进而分析路由器R2所连接的网络特点, 注意

, 但答案选项中只有一条信息, 因此这里

其连接了2

个网络分别是

用到了超网的概念, 超网是与子网类似的概念一IP 地址根据子网掩码被分为独立的网络地址和主机地址。但是, 与子网把大网络分成若干小网络相反, 它是把一些小网络组合成一个大网络一超网,

这里

, 那么子网掩码就是

前24位是相同的,

因此所构成的超网就是

, 因此答案是D 。

12.某计算机主存容量为64KB ,其中ROM 区为4KB ,其余为RAM 区,按字节编址. 现要用2K ×8位的ROM 芯片和4K ×4位的RAM 芯片来设计该存储器,则需要上述规格的ROM 芯片数和RAM 芯片数分别是( )

A.1、15 B.2、15 C.1、30 D.2、30 【答案】D

【解析】主存储器包括RAM 和ROM 两部分,由于ROM 区为4KB ,则RAM 区为60KB. 存储容量的扩展方法有字扩展、位扩展、字和位同时扩展三种. 选用2Kx8位的ROM 芯片,只需采用2片芯片进行字扩展便可得到4KB 的ROM 区;选用4Kx4位的RAM 芯片,需采用(60)/4*2片芯片进行字和位同时扩展便可得60KB 的RAM 区.

第 4 页,共 78 页