|
一、选择题(10小题,每题2分,共20分)
1. 用P代表入栈,O代表出栈。栈的初始状态和最终状态都为空,则下列栈操作正确的是( )。
APOOPOOPP
BPOPOPOOP
CPPPOOOPP
D.PPPOOPOO
2. 从长度为n的链表中取任意一个节点的时间复杂度是( )。
A、O(1)
B、O(n)
C、O(n^2)
D、O((n+1)/2)
3. 在内部排序中,排序时不稳定的有( ) 。
A. 插入排序 B. 冒泡排序 C. 快速排序 D.归并排序
4. 设有一个二维数组A[m][n],假设A[0][0]存放位置在644 (10进制),A[2][2]存放位置在676,每个元素占一个空间,问A[3][3]存放在什么位置?( )(和此题类似具体数字记不清)。
A.688 B.678 C.692 D.696
5.对线性表进行折半查找时,要求线性表必须 ( ) 。
A.以顺序方式存储 B. 以顺序方式存储,且结点按关键字有序排序
C. 以链接方式存储 D.以链接方式存储,且结点按关键字有序排序
6. 当有1024个关键字要选出最大的前五个以下哪些算法最优( )
A. 希尔排序 B. 堆排序 C. 冒泡 D. 直接插入
7. 设某棵二叉树中有2000个结点,则该二叉树的最小高度为( )。
A. 9 B. 10 C. 11 D. 12
8. 在内部排序中,排序时不稳定的有( ) 。
A. 插入排序 B. 冒泡排序 C. 快速排序 D.归并排序
9.设有一个无向图G=(V,E)和G’=(V’,E’),如果G’为G的生成树,则下面不正确的说法是( )。
A.G’为G 的子图 B.G’为G 的连通分量
C.G’为G的极小连通子图且V’=V D.G’为G的一个无环子图
10. 栈顶元素出栈时top指针如何变化( )。
A. 不变 B. top-1
C. top++ D. top=0
二、填空题(15空,每空2分,共30分)
1. 若使用二叉链表作为树的存储结构,在有n个结点的二叉链表中非空的链域的个数为_________。
2. 算法中的五个基本特性是:输入,输出,_________和 ,________
3. 设某棵二叉树中有2000个结点,则该二叉树的最小高度为_______。
4. 在单链表中,若要删除指针p所指结点的后一结点,则需要执行下列语句:(设q为指针变量)q=p->next; ; 。
5. 循环队列SQ的存储空间为M,front为队头指针,rear为队尾指针
则队列长度为 。
6. 设GetHead(p)为求广义表p的表头函数,GetTail(p)为求广义表 p的表尾函数。其中()
是函数符号,运算GetTail(GetHead((ab)(cde)))的结果是__________
7. 在一棵二叉树上,度为零的结点的个数为n0,度为2的结点的个数为n2,则n0的值为___________。
8. 在有n个叶子结点的哈夫曼树中,其结点总数为_________其空的链域的个数为_________。
9. 下面程序段的功能实现数据Key查找,要求在下划线处填上正确的语句。
bool contain(Node* node, Key key){
if( node == NULL )
return false;
if( key == node->key )
_________
else if( key < node->key )
return contain( _________ );
else // key > node->key
return contain( _________ );
}
三、简答题(4小题,每题10分,共40分)
1. 算法的 时间复杂度是否只和问题大小的规模相关?
2. 都有哪些常见的存储方式,简单说明其特点。
3. 树,森林为什么转成二叉树数据结构,其主要目的是什么?
4. 简单说明队列的性质,和其基本呢的用途(至少两种)。
四、应用题(4小题,每题10分,共40分)
1. 设用于通信的电文由字符集{a, b,c,d,e,f,g}中的字母构成,它们在电文中出现的频度分别为{0.34,0.12,0.10,0.08,0.13,0.20,0.03},如何为这7个字母设计二进制前缀编码使得电文总长最短,写出编码过程(和此题类似 数字记不清了)
2. 已知待散列的线性表为( 36 , 15 , 40 , 63 , 22 ),散列用的一维地址空间为 [0..6] ,假定选用的散列函数是 H ( K ) = K mod 7 ,若发生冲突采用线性探查法处理.(于此题类似具体数字记不清)
试: ( 1 )计算出每一个元素的散列地址并写出散列表,并求出冲突次数: `
3. 已知一有向图的邻接表存储结构如下图所示。
(1)画出此图
(2)根据有向图的深度优先遍历算法和广度优先遍历算法,从顶点 v1 出发,所得到的顶点序
4. 写出用希尔排序将关键字序列{54,23,89,48,64,50,25,90,34,72}排序过程的每一趟结果(于此题类似具体数据记不清了)
五、算法设计题 (2题,每题10分,共20分)
1. 设有两个集合A和集合B,要求设计生成集合C=A∩B的算法,其中集合A、B和C用链式存储结构表示。
2. 编写一算法判断无向图中任意给定的两个顶点之间是否存在一条长度为k的简单路径(即不含回路)。 |
|