【数据结构】期末不挂科笔记

大纲去复习

简答题

1、哈夫曼树的构造、计算wpl

哈夫曼树的处理其实很简单,将所有的权值节点放入最小优先队列中,每次取队头的两个数出来,组成一棵树,这颗树就三个节点,头节点是两个子节点的权值和。然后将新形成的头节点放入原先的最小优先队列中,循环上述过程就成为了一颗哈夫曼树。

给出具体例子:

  1. 给出8个带有权值的节点

  2. 将这些节点放入最小优先队列中,选择最小的两个权值节点——2、3出队,同时算出这两个节点的和为5

  1. 将刚刚得到的5权值节点放入初始的最小优先队列中,并再次pop出两个最小的权值节点,这次选择5、6,计算出和为11

  1. 重复上述操作,我们发现现在的最小优先队列的值为[7, 10, 11, 19, 21, 32],而我们这次出队的两个节点7、10都不是已经构造号的二叉树里面的节点,所以需要另外开一颗二叉树,这个树就是 17、7、10(头、左、右)

  1. 现在的队列中[11, 17, 19 ,21, 32],选取11、17,计算出和为28,构建28、11、17的树

  1. 现在的队列是[28, 32, 40],选出28、32,计算出和为60,构建60、28、32

  2. 现在队列是[40, 60],就只剩两个了,和为100,构建100、40、60

到此哈夫曼树构建完毕。

至于计算wpl,其实也很简单

我们画出来的哈夫曼树是可以看到层数的,wpl的值就是

A1最开始的权值数据 × A1爬到顶的步数 + A2最开始的权值数据 × A2爬到顶的步数 … + An最开始的权值数据 × An爬到顶的步数

什么意思呢,我们拿上面的哈夫曼树举例子

红点标注的就是最初始的数据,乘的就是爬到顶部的步数,例如2这个权值节点,爬到100这个节点就要5步,所以乘5

2、哈希表、计算平均查找长度asl

哈希表也叫散列表

哈希表的构建方法书上右6种,重点就是直接定址

处理哈希冲突的方法也有几种:开放地址法(求余)

其中,对增量d右三种取法

  1. 线性探测再散列
  2. 平方探测再散列
  3. 随机探测再散列

线性探测就是每一次+1

平方探测就是每次+1平方、负的1平方、2平方、负的2平方、3平方、负的3平方…以此类推

链地址法:

asl就是

每层冲突的次数之和 / 冲突总次数

3、最短路径

最短路径就是Dij算法和佛洛依德算法,既然老师说佛洛依德不考,那就是Dij算法了,详情见我的另一篇博客

4、堆排序、建堆

堆排序我也写过博客

5、avl树,bst树(两者出现一个)

AVL 树是一种平衡二叉树。平衡二叉树递归定义如下:

  1. 左右子树的高度差小于等于 1。
  2. 其每一个子树均为平衡二叉树。

基于这一句话,我们就可以进行判断其一棵树是否为平衡二叉了。

bst树就是二叉搜索树,avl树不需要平衡的需求,只需要满足排序大小为(左 < 头 < 右)即可

avl和bst树是动态查找,相比静态查找,有插入和删除功能。

avl的左旋右旋操作这里就得自己看了,我这边一时半会说不清。

编程题

1、二叉树的叶子节点个数(递归)

这题就比期中考试多了个判断条件——叶子节点

int LeafNodeNum(StructNode Node) {if (Node == NULL) {return 0;}if (Node->left == NULL && Node->right == NULL) {return 1;}return LeafNodeNum(Node->left) + LeafNodeNum(Node->right);
}

2、折半查找(二分查找)

这题目也不知道具体形式是啥

折半查找的前提是有序

关键判断条件

if (mid < search) {left = mid + 1;
}
else if (mid > search) {right = mid - 1;
}else {return mid;
}

填空、选择

1、排序的时间复杂度(最好、最坏、平均)


选择排序最好的情况也需要O(n^2)
快速排序最坏情况就是倒序情况,退化成冒泡排序,时间复杂度为O(n^2)
快速排序的空间复杂度为O(logn),这是辅助栈的空间
归并排序的空间复杂度为O(n),这是辅助数组的空间

2、基数排序

基数排序的特点:从个位开始,次位优先

3、队列、栈,判断空与满

队头:front

队尾:rear

队列最大大小:M(maxsize)

循环队列空:(rear + 1) % M != front

循环队列满:(rear + 1) % M = front

循环队列长度:(front - rear + M) % M

栈顶:top

栈底:base

栈空:top = base

栈满:top - base >= stacksize

4、二叉树的性质

二叉树的三种遍历得会吧
二叉树有以下几个性质:TODO(上标和下标)
性质1:二叉树第i层上的结点数目最多为 2^{i-1} (i≥1)。
性质2:深度为k的二叉树至多有(2^{k})-1个结点(k≥1)。
性质3:包含n个结点的二叉树的高度至少为log2 (n+1)。
性质4:在任意一棵二叉树中,若叶子结点的个数为n0,度为2的结点数为n2,则n0=n2+1

5、图的性质

带权的图得会吧

6、kmp算法

O(m+n)

7、构建二叉树

中序遍历 + x遍历

通过两个遍历来构建二叉树得会吧

8、最小生成树

k算法和p算法的基本得会吧

详情见我的另一篇博客

【数据结构】期末不挂科笔记相关推荐

  1. 【离散数学】期末不挂科复习笔记

    [离散数学]期末不挂科复习笔记 和蜂考学的,重要的应该是逻辑和函数这两大板块,图和树就与数据结构挂钩了(大部分都是之前学过的),重点看看各种逻辑的等值演算还有推理! 第一章(命题逻辑的基本概念) 1. ...

  2. 【大学物理】期末不挂科复习笔记

    [大学物理]期末不挂科复习笔记 猴博士yyds 打了*号的是重点 高斯定理 1.求通过某个面的电通量 *2.用高斯定理求场强 面电荷密度 x 面积 = 电荷量 注意: 有体积的物体需要分:体内和体外 ...

  3. 大学期末不挂科速成课-史上最全

    每到期末肯定有不少小伙伴烦恼趴 今天他来了-史上最全大学期末不挂科速成课 以下链接是合集合集!!单科可以私聊小编喔!! https://download.csdn.net/download/qq_52 ...

  4. c++ 图的连通分量是什么_【自考】数据结构第五章图,期末不挂科指南,第9篇

    图的基本概念 首先,你要明确图是什么样子的,就是下面这个样子的 图的定义与术语 有向图和无向图 直接对比图就可以看出来,有向图和无向图的区别了,这个没有什么难的. 有向图和无向图的表示法有略微的区别, ...

  5. 只用半小时,只用半小时,只用半小时,给自己一个机会,看完保你web开发一期末不挂科,老师看了都说好

    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到网站.点击这里 来还愿啦 Web开发(一)·期末不挂之第一章·Web开发基础(不背就挂的基础知识) Web开 ...

  6. C++ 1 之 冲刺期末不挂科的入门

    C++ 入门 先来几句废话 前言 什么是C++ C++发展 C++的重要性 如何学习C++ C++关键字 来一个Hello World!!! 命名空间 定义一个普通的命名空间 命名空间可以嵌套使用 命 ...

  7. 史上最全面的《软件工程》笔记—— 期末不挂科就看这一篇

    软件工程: 软件工程是: (1)将系统化的.规范化.可量化的方法应用于软件的开发.运行和维护,即将工程化方法应用于软件. (2)在(1)中所述方法的研究 软件和硬件的区别? 1.软件是设计开发的,而不 ...

  8. 数据结构基础知识点,看完保证期末不挂科!

    数据结构基础知识 线性结构 (1)连续储存(地址在内存中为连续)-----数组 (2)离散储存(地址在内存中不一定为连续的)-----链表 非线性结构 (1)树 (2)图 基础算法(查找排序): 折半 ...

  9. map的key可以试一个数组吗?_【自考】数据结构第三章,数组,期末不挂科指南,第5篇...

     数组 概念如下 数组可以看成线性表的一种推广,其实就是一种线性表,一维数组又称为向量 数据由一组具有相同类型的数据元素组成,并存储在一组连续的存储单元中 若一维数组中的数据元素又是一维数组结构,则 ...

最新文章

  1. EF修改对象里面的值。。。(对象字段多的时候)
  2. NUS 联合 Sea AI Lab 发表 Multi-view Pose Transformer,完全端到端学习,超强可扩展性...
  3. pytorch学习笔记(2):在MNIST上实现一个CNN
  4. Linux中Docker的介绍、安装与卸载
  5. 80年代的我们对儿时零食的回忆
  6. PSP3000终于可以放心的关机了!
  7. PMP考试题型是如何分布的?
  8. 高分辨率:遥感卫星影像
  9. 最新无广告扒小马客服系统多种商户接入客服等!目前最好的客服系统 跟洽美站仿站网站源码
  10. 开源项目_springboot的答题系统+spark大数据实时分析
  11. const注意点(对象赋值)
  12. 一个屌丝程序猿的人生(五十)
  13. Hui-iconfont字符图标不显示或显示异常。
  14. bat文件ping服务器,Windows下Ping一段IP地址的BAT
  15. PPT进行简单宣传册(三折页)制作、展板设计与背景装饰添加---幻灯片大小调整、背景格式设置
  16. 蓝桥杯——java(b组)省赛
  17. Mac提示mysql不是_mysql插入汉字报错。不是mysql是安装在mac系统里的
  18. 第四章Java核心类库_多线程
  19. C++ 调用 .lib 文件中的函数
  20. MUI、HTML5+、HBuilder实现透明渐变导航栏+自定义按钮(右上角分享按钮)

热门文章

  1. Android 异步消息处理机制 让你深入理解 Looper、Handler、Message三者关系
  2. 关于Java Advanced Imaging(JAI)的一点积累
  3. OpenGL基础图形编程(转)
  4. 2022-2028年中国智能数字压力校验仪行业市场发展潜力及投资风险预测报告
  5. javaweb-青橙项目-12-87
  6. 互联网手机败局已定 巨头退出山寨跟进
  7. 如何统一管理不同类型的终端设备?-Part 2
  8. 1026 程序运行时间—1030 完美数列
  9. 【EDA软件互转】PADS转Allegro
  10. 类似支付宝集五福活动,节假日活动H5