【数据结构】期末复习遗漏知识点记录
一学期没怎么听数构的大学生记录一下期末复(yu)习过程中一些容易遗漏的知识点QAQ
Part1 数据结构
- 常见的四类基本数据结构有:线性结构、树形结构、集合结构和图形结构。[ 逻辑结构 ]
- 物理存储结构有:顺序存储结构、链式存储结构。
- 判断: 由于链式存储结构不要求逻辑上相邻的元素在物理位置上也相邻,因此,它具有随机存取的优点。
答案: 错,不能随机存取!! - 判断: 数组是一种复杂的数据结构,数组元素之间的关系既不是线性的也不是树形的。
答案: 错,线性是对的 - 通常从四个方面评价算法的质量:正确性、易读性、强壮性、高效率
Part2 线性表
- 顺序表中在第 i 位前添加元素,i 可以是1—length + 1 的任何数。
- 双向循环链表 指向前面一个结点的prior,指向后面一个结点的next,其他都与单链表类似。
- 设指针变量p指向单链表中结点A,若删除单链表中结点A,则需要修改指针的操作序列为( A )。
(A) q=p->next;p->data=q->data;p->next=q->next;free(q);
(B) q=p->next;q->data=p->data;p->next=q->next;free(q);
(C) q=p->next;p->next=q->next;free(q);
(D) q=p->next;p->data=q->data;free(q); - 若某线性表最常用的操作是存取任一指定序号的元素和在最后进行插入和删除运算,则利用顺序表存储方式最节省时间。
- 线性表L在需不断对L进行删除插入的情况下适用于使用链式结构实现。
Part3 栈和队列
- 在有表头指针的循环单链中,链表为空的条件为头结点的指针指向自身。
- 栈是限定仅在 ==表尾== 进行插入或删除操作的线性表。
- 用链接方式存储的队列,在进行插入运算时头、尾指针可能都要修改。
- 利用大小为n的数组(下标从 0 到 n - 1)存储一个栈时,假定栈从数组另一头开始且 top == n 表示栈空,则向这个栈插入一个元素时,修改top指针应当执行 top —。
- 设一个堆栈的入栈顺序是1、2、3、4、5。若第一个出栈的元素是4,则最后一个出栈的元素必定是1或者5。
Part4 树
- 哈夫曼树是指带权路径长度WPL最小的二叉树。一般而言,在给定条件下构造出的哈夫曼树不是唯一的。
- 在二叉排序树中插入一个结点的时间复杂度为O(n)。
- 某二叉树的前序和中序遍历序列正好一样,则该二叉树中的任何结点一定都无左孩子。
- 若一个结点是某二叉树的中序遍历序列的最后一个结点,它不一定是该树的前序遍历序列中的最后一个结点。
- 判断: 存在一棵总共有2016个结点的二叉树,其中有16个结点只有一个孩子。
答案: 错误。
n~0~ + n~1~ + n~2~ = 2016
∵n₀ = n₂ + 1
⇨n₂ + 1 + 16 + n₂ = 2016
⇨2 n₂ = 1999
n₂ 除不尽,所以答案错误。 - 判断: 一棵树中,某结点位置上方各层中的所有结点都是该结点的祖先。
答案: 错误。 - 任何一棵二叉树的叶结点在先序、中序和后序遍历序列中的相对次序不发生改变。
- 某二叉树的中序序列和后序序列正好相反,则该二叉树一定是任一结点无左孩子。
- 已知一棵完全二叉树的第6层(设根为第1层)有8个叶结点,则该完全二叉树的结点个数最多是111。
- 有一个四叉树,度2的结点数为3,度3的结点数为2,度4的结点数为4,该树的叶结点个数是20。
- 对于任意一棵高度为 5 且有 10 个结点的二叉树,若采用顺序存储结构保存,每个结点占 1 个存储单元(仅存放结点的数据信息),则存放该二叉树需要的存储单元的数量至少是 31。
- 若根节点为高度1,一棵具有 1025 个结点的二叉树的高度为 11~1025 之间。
Part5 图
- 具有n个顶点的无相连通图至少有 n - 1条边。
- 路径长度最长的路径为关键路径。(虽然看着很像错的但它是正确的!!!)
- 图的深度优先搜索类似于二叉树的先序遍历,图的广度优先搜索类似于二叉树的层序遍历。
- AOV网是一种有向无回路的图。
- 设某有向图中有n个顶点,则该有向图对应的邻接表中有 n 个表头结点。
- 设某强连通图中有n个顶点,则该强连通图中至少有 n 条边。
- Prim算法是维护一个森林,每一步把两棵树合并成一棵。
- 如果 e 是有权无向图 G 唯一的一条最短边,那么边 e 一定会在该图的最小生成树上。
Part6 查找排序
- 快速排序在被排序数据完全无序的情况下最易发挥其长处。
- 使用折半查找时,静态查找表必须不仅是有序表,并且连续存储。
- 在待排序的元素序列基本有序的前提下,效率最高的排序方法是插入排序。
- 每次直接或通过基准元素间接比较两个元素,若出现逆序排列时就交换它们的位置,此种排序方法叫做快速排序。
- 在堆排序的过程中,对任一分支结点进行筛运算的时间复杂度为O(logn),整个堆排序过程的时间复杂度为O(nlogn)。
- 为了能有效地应用HASH查找技术,必须解决的两个问题是构造一个好的HASH函数和确定解决冲突的方法。
- 设有n个待排序的记录关键字,则在堆排序中需要 1 个辅助记录单元。
- 设二叉排序树中有n个结点,则在二叉排序树的平均平均查找长度为log~2~n。
- 所有的排序算法中,基数排序不需要进行关键字的比较操作。
- 堆是完全二叉树,完全二叉树不一定是堆。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Texcavator 的秘密基地!
评论