数据结构 试题

前言

这里是 数据结构 系列文章,主要介绍计算机二级考试中的涉及到数据结构的知识点 /
数据结构在计算机科学中处处都有存在,例如编译系统要使用栈、散列表、语法树等;操作系统要使用队列、存储管理表、目录树等等。

关于作者:

转载请注明出处

题目

  1. 冒泡排序在最坏情况下的比较次数是

    • n(n+1)/2
    • nlogn
    • n(n-1)/2
    • n/2
  2. 某二叉树有5个度为2的节点,则该二叉树中的叶子节点数是

    • 10
    • 8
    • 6
    • 4
  3. 对于循环队列,下列叙述中正确的是

    • 队头指针是固定不变的
    • 队头指针一定大于队尾指针
    • 队头指针一定小于队尾指针
    • 队头指针可以大于队尾指针,也可以小于队尾指针
  4. 某二叉树中有n个度为2的结点,则该二叉树中的叶子节点数为

    • n+1
    • n-1
    • 2n
    • n/2
  5. 支持子程序调用的数据结构是
    • 队列
    • 二叉树

解析

    • 冒泡排序法是一种最简单的交换类排序方法,它是通过相邻数据元素的交换逐步将线性表变成有序。
    • 假设线性表的长度为n,则在最坏的情况下,冒泡排序需要经过n/2遍的从前往后的扫描和n/2遍的从后往前的扫描,需要的比较次数为n(n-1)/2。
  1. 在任意一颗二叉树中,度为0的节点,总是比度为2的节点多一个。
    • 所谓循环队列,就是将队列空间的最后一个位置绕到第一个位置,形成逻辑上的环状空间,供队列循环使用。
    • 在循环队列中,用队尾指针rear指向队列中的队尾元素,用排头指针front指向排头元素的前一个位置。
    • 循环队列主要有两种基本运算:入队运算与退队运算,每进行一次入队运算,队尾指针就进一。
    • 每进行一次退队运算,排头指针就进一。
    • 当rear或front的值等于队列的长度+1时,就将rear或front的值置为1。一般情况下,rear大于front,因为入队的元素肯定比出队的元素多。特殊的情况是rear到达数组的上限后又从数组的低端开始,此时,rear是小于front的。
  2. 在任意一颗二叉树中,度为0的节点,总是比度为2的节点多一个。
  3. 栈是一种只能在一端进行插入或删除的线性表。在主程序调用子程序时,要首先保存主程序当前的状态,然后去执行子程序,最终把子程序的执行结果返回到主程序调用子程序时的位置,继续往下执行,这种调用符合栈的“先进后出”的功能。

图表复盘

题目数量错误数量错误率
20525%
20630%
401127.5%

第一行为今日的错误数量占比分析 /
第二行开始是前几日的错误数量占比分析 /
最后一行是总的错误数量占比分析

今日知识点分布图

涉及知识点出现次数占比
排序算法120%
二叉树240%
队列120%
120%

总知识点分布图

涉及知识点出现次数占比
排序算法436%
二叉树327%
队列19%
218%
链表19%
算法分析19%

精度取自小数点后两位

小结

分为两部分。
先看今日的,今日出现最多的是二叉树,其余各占20%,当然了,这跟不了解二叉树的性质有关,而之前一日占比最大的排序算法在今天仍然是错误了,其主要原因可能因为,八大排序算法都会被归为排序算法中,其范围大,自然错其中一个也就会增加数量了。
其次是总的,从排名上来看,仍然是排序算法占据榜首,其次是二叉树,虽然仅仅只有40道题目的样本,但大概反映了情况,100道题会是一个意义比较大的样本数量,期待吧。