当前位置:文档之家› 河北大学数据库结构试卷4

河北大学数据库结构试卷4

一、选择题(每题2分,共20分)
()1、向一个栈顶指针为Top的链栈中插入一个s所指结点时,其操作步骤为A)Top->next=s; B)s->next=Top->next;Top->next=s;
C)s->next=Top;Top=s; D)s->next=Top;Top=Top->next;
()2、下列说法正确的是
A)二叉树中任何一个结点的度都为2 B)二叉树的度为2
C)一棵二叉树的度可小于2 D)任何一棵二叉树中至少有一个结点的度2 ()3、在一个单链表中,若p结点不是最后结点,在p之后插入s结点,则执行A)s→next=p;p→next=s;B)s→next=p→next;p→next=s;
C)s→next=p→next;p=s;D)p→next=s;s→next=p;
()4、具有N个叶子结点的哈夫曼树的分支结点有个。

A)N B)N+1 C)2N-1 D)N-1
()5、二叉排序树中,键值最小的结点一定
A)左指针为空B)右指针为空
C)左右指针均为空D)左右指针均非空
()6、将递归算法转换成对应的非递归算法时,通常需要使用
A)栈B)队列
C)链表D)树
()7、串是一种特殊的线性表,其特殊性体现在
A)可以顺序存储B)数据元素是一个字符
C)可以链接存储D)数据元素可以是多个字符
()8、一个栈的入栈序列是a,b,c,d,e,则栈的不可能的输出序列是
A)edcba B)decba C)dceab D)abcde
()9、设高度为h的二叉树上只有度为0和2的结点,则此二叉树中所包含的结点数至少为
A)2*h B)2*h-1 C)2*h+1 D)h+1
()10、下列排序算法中,算法可能会出现情况:在最后一趟开始之前,所有元素都不在其最终位置上。

A)堆排序B)冒泡排序C)快速排序D)插入排序
二、判断题(每题1分,共10分)
()1、在前序遍历二叉树的序列中,任何结点的子树中的所有结点不一定在该结点之后。

()2、图的最小生成树的形状可能不唯一。

()3、在n个结点的无向图中,若边数大于n-1,则该图必是连通图。

()4、对于给定的关键字集合,以不同的次序插入到初始为空的二叉排序树中,得到的二叉排序树是相同的。

()5、对有n个记录的集合进行冒泡排序,所需时间决定于初始记录的排列情况;在初始记录无序的情况下最好。

()6、将树转换成二叉树,其根结点的右子树必是空的。

()7、插入、删除是数据结构中基本的操作,所以这两种操作在数组中也常用。

()8、任何一棵二叉树的叶结点在先序、中序和后序遍历序列中的相对次序不发生改变。

()9、在哈夫曼编码中,出现频率相同的字符编码长度也一定相同。

()10、采用线性探测法处理冲突时,当从哈希表中删除一个记录时,不应将这个记录的所在位置置为空,因为这将会影响以后的查找。

三、简答题(每题6分,共36分)
1、循环队列的优点是什么?如何判别它的空和满?
2、画出和下列已知序列对应的树T;并将其转换为相应的二叉树。

树的先根次序访问序列为:GFKDAIEBCHJ;树的后根访问次序为:DIAEKFCJHBG。

3、已知查找表为{19,01,23,14,55,20,84,27,68,11,10,77},设定哈希函数为:H(key)=key % 13 ,采用开放地址法的线性探测法解决冲突,试在0~16的哈希地址空间中对该关键字构造哈希表,并求出查找成功时的平均查找长度。

4、画出下图的邻接矩阵,并按普里姆算法求其最小生成树(从编号为1的结点开始,写出步骤)。

5、设AOE网如下图所示,求:
①列出各个事件的最早、最迟发生时间;
②找出该AOE网中的关键路径,并回答完成该工程需要的最短时间。

6、应用直接选择排序算法,对关键值序列25,84,21,47,15,27,68,35,24从小到大排列。

试写出每趟排序的结果。

四、算法设计题(共34分)
【要求】①定义主要数据的存储类型;②对算法中的主要操作步骤加以注释。

1、假设有两个递增有序的单链表A和B,编写一个算法将它们合并成一个链表C而不改变其排序性。

(11分)
2、以二叉链表为存储结构,写出求二叉树高度的算法。

(10分)
3、一个线性表中的元素为正整数或负整数。

设计一个算法,将正整数或负整数分开,使线性表前一半为负整数,后一半为正整数。

不要求对这些元素排序,但要求尽量减少交换次数。

(13分)。

相关主题