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

2017年北京师范大学地理学与遥感科学学院978数据结构考研强化模拟题

  摘要

一、填空题

1. 在单链表L 中,指针P 所指结点有后继结点的条件是_____

【答案】

【解析】指针所指节点的指针域所指向的元素非空,说明该指针所指节点有后继结点。

2. 线性表用数组表示,假定删除表中任一元素的概率相同,则删除一个元素平均需要移动元素的个数是_____。

【答案】(n -1)/2

【解析】删除第一个元素需要移动n -i 次,以此类推,删除最后一个元素需要移动0次。平 均次数为

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

void leafchain(BiTree Abt)

{p={BiTree)malloc (sizeof (BiTNode )); If (!p ){print£(“OVERFLOW\n”; exit (1); }

head=p; top=0; if (bt )

{top++; stack[top]=bt; while (top )

{t=stack[top]; top--;

if (it->Lchild && !t->Rchild){ (1) ; (2) ; (3) ; } else {if( (4) ){top++; stack[top]= (5) ; } if ( (6) ){top++; stack[top]= (5) ; } } }

(8) ; (9) ; } } 【答案】

p->Rchild=t:t->Lchild=p:p=t: p->Rchild=head:head->Lchild=p

t->Rchild!=null:t->Rchild:

t->Lchild!=null:

t->Lchild:

4. 完善算法:求KMP 算法.next 数组。

END ; 【答案】

其中

队头和队尾指针分别为front 和rear , 则此循

5. 已知一循环队列的存储空间为环队列判满的条件是( )

【答案】

6. 下列程序是快速排序的非递归算法,请填写适当的语句,完成该功能。

【答案】

【解析】快速排序(quicksort )的基本思想是,通过一趟排序将待排记录分割成独立的两部分,其中一部分记录的关键字均比另一部分记录的关键字小,则可分别对这两部分记录继续进行排序,以达到整个序列有序。

7.

每一棵树都能唯一地转换为它所对应的二叉树。若已知一棵二叉树的前序序列是中序序列是前庁序列是_____。

【答案】

.

,则它的后庁序列是_____。设上述二叉树是由某棵树转换而成,则该树的

【解析】树的抑序序列对应二叉树的前序序列. 该二叉树转换成森林吋含三棵树. 其第一棵树的前序是。

8. 空格串是指_____,其长度等于_____。

【答案】由空格字符(

值32)所组成的字符串;空格个数

9. 求图的最小生成树有两种算法,_____算法适合于求稀疏图的最小生成树e

【答案】克鲁斯卡尔

【解析】克鲁斯卡尔算法是一种按权值的递增次序选择合适的边来构造最小生成树的方法,这种算法中,采用堆来存放边的集合,适合于边稀疏而顶点较多的图。

10.在图G 的邻接表表示中,每个顶点邻接表中所含的结点数,对于无向图来说等于该顶点的_____; 对于有向图来说等于该顶点的_____。

【答案】度;出度

11.

给定一组数据

的值为_____。 【答案】5;96

【解析】每次找两个最小的权值构建哈夫曼树:

以它构造一棵哈夫曼树,则树高为_____,

带权路径长度

12

求REPLACE (S ,V , m )=_____。

【答案】

13.假定有k 个关键字互为同义词,若用线性探测再哈希法把这k 个关键字存入哈希表中,至少要进行_____次探测。

【答案】