2.22专项测试复盘

  • 关于堆数据结构,下面描述中正确的有()
    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-树中的叶子结点可出现在不同层次上

    解析:https://www.sohu.com/a/154640931_478315
    答案:D

  • 在下列表述中,()是错误的
    A. 含有一个或多个空格字符的串称为空串
    B. 对n(n>0)个顶点的网,求出权最小的n-1条边便可构成其最小生成树
    C. 选择排序算法是不稳定的
    D. 平衡二叉树的左右子树的结点数之差的绝对值不超过1

    解析:
    A选项:长度为0 的串为空串,即为“” 。由多个空格字符构成的字符串称为空格串
    B选项:如果权值最小的n-1条边构成了环的话,就不能构成最小生成树
    D选项:平衡二叉树的左右子树高度之差的绝对值不超过1.
    C选项:选择排序包括直接选择排序和堆排序,都是不稳定的算法

    答案:ABD

posted @ 2020-02-22 20:14  19呀  阅读(633)  评论(0编辑  收藏  举报