熊哥保佑你 数据结构复习

news2024/11/16 21:51:40

构造哈夫曼树:

先带权值最小的,再找有关系的(一般是相等或相近),没关系的放一边,最后将有关系的和没关系的组成一个哈夫曼树。

.

最小生成树:

顶点数:n
边数:n-1
kruskal:找最小边
prim:从一个点出发,根据点的集合找最小边

.
深度、高度不包括叶子节点
区别:
深度指的是从根节点到某个节点的路径长度,而高度指的是从某个节点到最远叶子节点的路径长度。

相关例题:
一个高度为5的3阶B树还有的关键字个数至少是:
2**5-1=31

.
小根堆:每个小三角形内都是三数最小的当根
大根堆:每个小三角形内都是三数最大的当根

调整过程都是自底向上进行的。

.

平衡二叉树:

计算时左减右

  1. LL型:
    在这里插入图片描述
  2. RR型:

    下面C换成D
  3. LR型:
    在这里插入图片描述
    E、F互换
  4. RL型:
    在这里插入图片描述
    左边的E应该是B

.
对 m 个初始归并段进行 k -路平衡归并:
(读的次数+写的次数)*趟数+内部排序(读的次数+写的次数)

趟数= log 以 k 为底 m 的对数,进行向上取整

为实现最佳归并,需要补充的虚段(长度为 0 的初始归并段)个数:
公式:( m - 1 )%( k - 1 )
当公式的值为 0 时,不用补
当公式的值不为 0 时,需要补充的虚段个数为:k -公式- 1

读写外存次数最少的归并方案:
在初始归并段最开头添加需要补充的虚段个数个 0 ,形成哈夫曼树,
此时的哈夫曼树是 k 叉树。
此时读写外存次数:哈夫曼树的带权值 * 2

.
Dijkstra:按点的集合找最小边形成最短路径
Prim:直接找最小边,按边找最短路径

.

线索二叉树:

在这里插入图片描述
先按画图法或三角形法列出遍历序列,必须挨着才能连线。

.
对一个树来说:出度 = 入度
总结点个数 = 入度个数 + 1(根无入度)

一个度为 n 的树中,每个结点最多可以有 n 个子结点。

.
拓扑序列:每次找没有入度的点

.

快速排序:

  1. 第一趟:先在最右侧设一个哨兵,在最左侧设置 Left,在除哨兵之外最右侧设置 Right。Left 找大于哨兵的数,找到之后不动,等待 Right 找小于哨兵的数,找到后两数交换。当 Left 和 Right 重合时,判断 Left 和 Right 指向的数和哨兵的大小关系,进而判断是否要交换两数。
  2. 第二趟:在中间位置设哨兵,重复上述操作。(左半部分)
  3. 第三趟:(右半部分)
  4. 继续上述操作,直到排序完成

.

循环队列:

  • front = rear 时,队列为空或队满
  • 循环队列 A [0] 不一定是第一个元素所在位置,同样,front 和 rear 的位置是不固定的,不一定指向 A [0]
  • 添加元素后,rear 指针向后移动;添加元素前,rear 在上一个位置。
    在这里插入图片描述

.

哈希表处理冲突的方式:

都是哈希法存数:

  1. 线性探测
    在这里插入图片描述
  2. 二次探测
    在这里插入图片描述
  3. 链接法
    在这里插入图片描述

.

稀疏矩阵:

  1. 三元组线性表:(所有非零元素的( 行,列,值 ))
  2. 十字链表
    在这里插入图片描述

.

广义表:

在这里插入图片描述
表头是第一个元素
表尾是除第一个元素之外的其他所有元素

.

关键路径:

  1. 最早开始时间 = 最晚开始时间的结点连起来 且 权值相加 = 正推结束后的值
  2. 最早开始时间 = Max( n1,n2) 正推
  3. 最晚开始时间 = Min( n1,n2 ) 逆推
  4. 起点和终点最早开始时间 = 最晚开始时间
  5. 起点为( 0,0 )终点为为正推结束后的值

例子:
在这里插入图片描述

.

深度优先和广度优先生成树:

深度优先:
案例:
在这里插入图片描述
广度优先:

  • 类似层次遍历
  • 任何结点都可以成为顶点,与顶点相连的是第二层,同理依次向下
    案例:
    在这里插入图片描述

.

二分查找:

公式:mid =( low + high )/ 2

例题:
一个长度为 n 的有序表,若采用二分查找一个不存在的元素,则比较次数最多是?
公式:log 以 2 为底 n 的对数向下取整 + 1

.

前缀、中缀、后缀表达式:

相互转化:
前缀、中缀、后缀之间的相互转化都用到栈这一数据结构
在这里插入图片描述
前缀转中缀:
案例:
在这里插入图片描述
中缀求前缀:
案例:
在这里插入图片描述
中缀求后缀:
案例:
在这里插入图片描述
后缀转中缀:
案例:
在这里插入图片描述

.

时间复杂度:

递归的空间复杂度为 O( n )
尾递归的空间复杂度为 O( 1 )

尾递归:

  1. 递归函数的最后一步操作是调用函数本身。
  2. 递归调用的结果不参与任何的后续操作,而是直接返回

.

排序算法时间、空间复杂度:

在这里插入图片描述

.

B - 树的插入:

B - 树类似一个结点可以容纳多个数的多叉树
B - 树中除根之外的所有非终端结点中的关键字个数必须大于等于 m / 2 的上取整 - 1,不超过 m - 1
m:阶数
在这里插入图片描述

.

B - 树的删除:

  1. 若该结点为最下层的非终端结点,由于其指针均为空,删除后不会影响其他结点,可直接删除
  2. 若该结点不是最下层的非终端结点,邻近的指针则指向一棵子树,不可直接删除

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/688016.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

AI绘画:切换黑色风格,安装更棒的主题!

从Stable Diffusion 出现的第一天起,我就开始关注这个项目,后来也出过几期教程。 一直以来都是只追求功能实现,不管界面的问题。现在我突然想要换一个帅气的主题了…就是这么突然! 默认的白色主题太….普通…既没有设计感啊&…

蓝桥杯专题-试题版-【FJ的字符串】【Huffuman树】【Sine之舞】【报时助手】

点击跳转专栏>Unity3D特效百例点击跳转专栏>案例项目实战源码点击跳转专栏>游戏脚本-辅助自动化点击跳转专栏>Android控件全解手册点击跳转专栏>Scratch编程案例点击跳转>软考全系列点击跳转>蓝桥系列 👉关于作者 专注于Android/Unity和各种游…

代谢组学及网络药理学研究技术与实践

一、背景: 代谢组学是近年发展快速的一门学科,目前在医学、植物学、微生物学、毒理学、药物研发等多个领域中得到了广泛的应用。如何从复杂的代谢组学数据中提取出有价值的信息,筛选出潜在的生物标志物成为近年来代谢组学研究的热点和难点。网络药理学能…

supervisor-eventlistener

了解supervisor-eventlistener 本文主要介绍 supervisor Event 的功能。 supervisor 作为一个进程管理工具,在 3.0 版本之后,新增了 Event 的高级特性, 主要用于做(进程启动、退出、失败等)事件告警服务。 Event 特性是将监听的服务(listener)注册到su…

Axure教程—中继器筛查与排序

当工作中需要进行数据筛查排序操作时,我们可以如何使用Axure来进行相关操作呢?本篇文章里,作者利用中继器为我们展示了数据筛查与排序,让我们一起来看一下。 预览效果 预览地址:https://6q6ajh.axshare.com 功能介绍…

【AI模型部署】基于gradio和python的网页交互界面(web-ui)——简易使用方法

使用gradio,只需在原有的代码中增加几行,快速部署机器学习模型,就能自动化生成交互式web页面,并支持多种输入输出格式,比如图像分类中的图>>标签,超分辨率中的图>>图等。 同时还支持生成能外部网络访问的链…

最小二乘法的原理及实现

1.最小二乘法的原理及实现 笔记来源于《白话机器学习的数学》 1.1 最小二乘法的原理 预测一个变量 x x x与一个变量 y y y的关系 例如:广告费 x x x与点击量 y y y 用直线拟合数据 1.2 最小二乘法的实现 广告费x和点击量y,找到一条直线表达式&#x…

基于matlab多运动目标跟踪监测算法实现(附源码)

一、前言 此示例演示如何对来自固定摄像机的视频中的移动对象执行自动检测和基于运动的跟踪。 二、介绍 移动物体检测和基于运动的跟踪是许多计算机视觉应用的重要组成部分,包括活动识别、交通监控和汽车安全。基于运动的对象跟踪问题可以分为两部分: 检…

【KitBash3D Cargo插件】向UE中直接导入免费模型

步骤 1. 进入KitBash3D官网,点击右上角按钮来下载Cargo 2. 下载好后是个压缩包,需要进行解压 3. 解压后运行安装程序 4. 我就安装到默认的安装路径 5. 安装好后打开软件,注册账号(如果点击创建账户按钮没反应就去KitBash3D官网注…

VS依赖注入(DI)构造函数自动生成局部私有变量

前言 依赖注入(DI)在开发中既是常见的也是必需的技术。它帮助我们优化了代码结构,使得应用更加灵活、易于扩展,同时也降低了各个模块之间的耦合度,更容易进行单元测试,提高了编码效率和质量。我们经常会先定义局部变量&#xff0…

OpenCL编程指南-6.2程序对象

创建和构建程序 要创建程序对象,可以传入OpenCL C源代码文本,或者利用程序二进制码来创建。由OpenCL C源代码创建程序对象是开发人员创建程序对象的一般做法。OpenCL C程序的源代码放在一个外部文件中(例如,就像我们的示例代码中…

【网络知识面试】初识协议栈和套接字及连接阶段的三次握手

接上一篇:【网络面试必问】浏览器如何委托协议栈完成消息的收发 1. 协议栈 一直对操作系统系统的内核协议栈理解的模模糊糊,借着这一篇博客做一下简单梳理。 我觉得最直白的理解,内核协议栈就是操作系统中的一个网络控制软件,就是…

【git】git常用指令(项目一般使用流程示例)

文章目录 创建开发环境clone到本地查看分支创建自己的开发分支切换到开发分支 开发完成上传到仓库判断目前本地仓库的状态新内容提交到暂存区新内容更新到本地仓库新内容推到远端仓库dev1.0并入主分支1.切换到主分支2.合并3.推主分支上远端仓库 回退版本主分支更新了&#xff0…

软件产品登记测试为何如此重要?

软件产品登记测试为何如此重要? 软件产品登记测试报告,是对客户的软件产品进行功能性的检测和验证,确保这些功能都得以实现并能正常运行,可作为国家高新、增值税退税、双软评估、首套台软件的检测证明材料。 软件登记测试是“双软…

three.js中聚光灯及其属性介绍

一、聚光灯及其属性介绍 Three.js中的聚光灯(SpotLight)是一种用于在场景中创建聚焦光照的光源类型。它有以下属性: color:聚光灯的颜色。 intensity:聚光灯的强度。 distance:聚光灯的有效距离。 angl…

知识管理工具:在信息时代下的组织智慧管理

随着信息时代的到来,企业面临着前所未有的信息爆炸和快速变化的挑战。如何高效地管理和利用这些信息已经成为了企业生存和发展的关键。在这种背景下,知识管理工具应运而生,为企业提供了优秀的解决方案。 知识管理工具的定义与特点 知识管理的…

DAMA数据治理CDGA/CDGP认证考试备考经验分享

一,关于DAMA中国和CDGA/CDGP考试 国际数据管理协会(DAMA国际)是一个全球性的专业组织,由数据管理和相关的专业人士组成,非营利性机构,厂商中立。协会自1980年成立以来,一直致力于数据管理和数字…

gralylog介绍与安装

介绍 Graylog是一个开源的日志管理和分析平台,用于收集、存储、分析和可视化大量日志数据。它提供了一个集中化的解决方案,可以帮助组织有效地处理分散在各种系统和应用程序中的日志信息。 以下是Graylog的主要特点和功能: 日志收集&#x…

【AI工具】-MockingBird-语音合成语音克隆

简介 MockingBird: 英文翻译:反舌鸟,也可能来自《杀死一只知更鸟》(英语:To Kill a Mockingbird),台译“梅冈城故事”,中国大陆译“杀死一只知更鸟”,直译应为“杀死一…

【Python】python进阶篇之数据库操作

数据库操作 pip3安装mysql依赖 pip3 list|grep mysqlpip3 install mysql-connector-python #指定版本 pip3 install mysql-connector-python版本号 #升降版本 pip3 install --upgrade mysql-connector-python版本号原生SQL操作 操作mysql可以使用pymsql或mysql-connector-py…