-
关于堆数据结构,下面描述中正确的有()
A. 可以用堆实现优先队列(priority_queue)
B. 使用堆可以实现排序算法,复杂度为N × log N
C. 从M个元素中查找最小的N个元素时,使用大顶堆的效率比使用小顶堆更高
D. 在大顶堆中,第N层中的所有元素比第N+1层中的所有元素都要大
E. 堆数据结构可以用数组方式存储,存储的是一棵完全二叉树解析:小顶堆思路:构建一个容量为n的堆,建堆时间为n,此后每次都弹出堆顶元素(最小元素)再调整,一共弹 K 次,每次调整时间为log(n),所以时间复杂度是 n+Klog(n);
大顶堆思路:只维护一个容量为 K 的堆,所以建堆的复杂度为 K,此后遍历数组剩下的所有元素(n-K个),每个元素都要和堆顶的元素进行比较,如果比堆顶大,则忽略(说明该元素不是最小K个值,概率比较难算,这里简单当作(n-K)/n),复杂度是1,如果比堆顶小(概率简单视作K/n),则将堆顶替换为该元素并调整堆结构(称之为堆更新),每次更新(堆调整)的复杂度为 log(K),所以最坏时间代价为:K + (n-K) * log(K);
结合概率平均每个元素要比较的次数为:log(K)K/n + 1(n-K)/n,所以总时间复杂度是:K + (n-K) * [log(K)K/n + 1*(n-K)/n];
答案:ABCE -
一个线性序列(30,14,40,63,22,5),假定采用散列函数Hash(key)=key%7来计算散列地址,将其散列存储在A[0~6]中,采用链地址法解决冲突。若查找每个元素的概率相同,则查找成功的平均查找长度是( )。
A. 4/3
B. 1
C. 3/2
D. 5/3解析:
0 -- 14 -- 63
1 -- 22
2 -- 30
5 -- 40 -- 5
平均查找长度 (1 + 2 + 1 + 1 + 1 + 2) / 6 = 4 / 3
答案:A -
用 0 - 9 这 10 个数字组成一个首尾相连的字符串,每个数字可以重复出现多次,并且字符串中任意 2 个数字都相邻出现过。此字符串最小长度是()
A. 47
B. 48
C. 49
D. 50解析:数字0必须与其他9个数字相邻,则0最少出现5次。每个数字的地位均等,根据对称性,50
答案:D -
某二叉树的前序序列和后序序列正好相反,则该二叉树一定是(高度等于其结点数)的二叉树
-
下面属于构造散列(hash)函数的方法是
A. 直接定址法
B. 数字分析法
C. 乘余取整法
D. 平方取中法答案:ABCD
-
深度为k的完全二叉树中最少有(2^(k-1))个结点。
-
单链表中,增加一个头结点的目的是为了 。
A. 使单链表至少有一个结点
B. 标识表结点中首结点的位置
C. 方便运算的实现
D. 说明单链表是线性表的链式存储解析: 头结点的存在,使得空链表与非空链表的处理变得一致,也方便了对链表的开始结点插入或删除操作。
答案:C -
在下述几种树中,()可以表示静态查找表
A. 次优查找树
B. 二叉排序树
C. B-树
D. 平衡二叉树答案:A
-
若一个栈以向量V...存储,初始栈顶指针top为n+1,则下面x入栈的正确操作是()。
A. top=top+1; V[top]=x
B. V[top]=x; top=top+1
C. top=top-1; V[top]=x
D. V[top]=x; top=top-1答案:C
-
下述图的遍历算法中正确的说法是( )。
A. 广度优先遍历算法只适应于无向图
B. 广度优先遍历算法只适应于有向图
C. 可能需要多次调用深度优先遍历算法或广度优先遍历算法,方可遍历一个无向图
D. 只需一次调用深度优先遍历算法或广度优先遍历算法,即可遍历一个无向图解析:如果该图不是连通的话,就不止一次
答案:C -
不含任何结点的空树是什么
A. 是一棵树;
B. 是一棵二叉树;
C. 是一棵树也是一棵二叉树;
D. 既不是树也不是二叉树解析:树不能为空,因为树是图的一种,图不能为空,二叉树可以为空,树和二叉树直接没有包含关系。
答案:B -
下列关于m阶的B-树的论述不正确的是
A. B-树是一种平衡的多路查找树
B. 树中每个结点至多有m棵子树
C. 若根结点不是叶子结点,则至少有两棵子树
D. B-树中的叶子结点可出现在不同层次上 -
在下列表述中,()是错误的
A. 含有一个或多个空格字符的串称为空串
B. 对n(n>0)个顶点的网,求出权最小的n-1条边便可构成其最小生成树
C. 选择排序算法是不稳定的
D. 平衡二叉树的左右子树的结点数之差的绝对值不超过1解析:
A选项:长度为0 的串为空串,即为“” 。由多个空格字符构成的字符串称为空格串
B选项:如果权值最小的n-1条边构成了环的话,就不能构成最小生成树
D选项:平衡二叉树的左右子树高度之差的绝对值不超过1.
C选项:选择排序包括直接选择排序和堆排序,都是不稳定的算法
答案:ABD