【数据结构】

根据先序、中序、后序确定二叉树:

#背景:树和二叉树基本上都有先序、中序、后序、按层遍历等遍历顺序,根据先序和后序不一定可以确定一棵二叉树,给定中序和其它一种遍历的序列就可以确定一棵二叉树的结构。

抓住中序特点:已知根节点,向根节点左右各自延申,直到触及之前节点,元素分别包含在左右子树

抓住先序特点:对一棵树的所有节点作包围,包围圈的第一个元素为根节点

抓住后序特点:对一颗树的所有节点作包围,包围圈的最后一个元素为根节点

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

1.中缀转前缀、后缀:根据运算优先级将算式提取出来,将运算符提到前面或者后面,然后紧跟两个操作数,对于非元部分继续根据运算优先级提取算式。

2.后缀转中缀:假设一个栈,从左到右将数字和算符压入,当栈顶出现:“操作数操作数符号” 的组合时,弹出,将符号还原后放回栈中,整体作为一个操作数(视情况加括号)

3.前缀转中缀:假设一个队列,从左到右将数字和算符排入,当队尾出现:“符号操作数操作数”的组合时,排出,将符号还原后放回队列中,整体作为一个操作数(视情况加括号)

 

已知入栈序列,求可能出栈序列:

先用公式法求数量,再枚举。

2dac61bbcd8a41f4b5ba24516cc170b5.png

 

 

 

 

 

KMP算法求一般NEXT数组、改进NEXT数组:
因为下标从0开始,因此对一般NEXT数组的求法给出如下方法:首先,出于对主串指针当前所指元素与子串第一个元素相失配则无法回溯配对,因此必须让主串指针前进的考虑,定义NEXT[0]=-1。在此基础上,对于NEXT[i]的元素,考虑:i之前(不包含i)的部分子串的前缀(不包含最后一个元素)和后缀(不包含第一个元素)的同向公共部分(从左到右比较)的长度大小。

改进NEXT数组求法:在一般NEXT数组的基础上,重新考察NEXT[i]的元素(i ! = 0),考虑:如果NEXT[i]对应j,且p[i] = p[j],则令NEXT[i] = NEXT[p[j]] = NEXT[NEXT[i]];反之,维持不变。通过确认和设置失配元素和回溯元素不等,这项操作有效地防止了无效回溯。

 

二叉排序树:

画法:按照题目给出的顺序依次插入结点,具体做法是按照结点值的大小插入结点,小于根节点进入左子树;大于根节点进入右子树。

检查措施:将画好的二叉排序树计算中序序列,如果是升序序列,则说明建立成功

 

求折半查找法的等概率查找平均查找长度

先转换成对应的二叉树,再对“深度*个数”求和再除个数。

45b18b50b9be4cdaa940211306395513.png

注意:每个出度不为2的结点都要存在左右的失败结点,查找失败计算的是失败节点的查找长度,但是每一个失败节点的深度需要向上提一层,最后求平均除以的数量也是失败结点的数量

17e3b7514ee346debe529bf21b39982b.png

某序线索化的穿线二叉树(又叫线索二叉树):

画法:首先写出对应序列,返回二叉树,如果某结点出度不为2,则通过连接序列中对应相邻的结点补全,如果没有没有对应相邻结点,则指向NULL

 

森林、树与二叉树之间的转化:

【【数据结构】树、二叉树、森林直接的转换】【数据结构】树、二叉树、森林直接的转换_哔哩哔哩_bilibili

 

求最小生成树:

Prim Algorithm: 纳入顶点。纳入新顶点的代价最小,直到包括所有顶点。

Kruskal Algorithm: 纳入边。纳入新边的权值最小且原本这两个结点无联通关系,直到联通所有顶点。

 

 

AOE网求关键路径:

fbe838d4f2b64d02b65c4e7fdcb425bc.png

所有事件最早发生时间(源点为0):多线模拟中所需最大时间(木桶效应)、所有事件最晚发生时间:最大偷懒时间、所有活动的最早发生时间(事件最早传递)、所有活动的最晚发生时间(最晚时间传递)

关键路径求法:求事件最早发生事件每次求最大值舍弃路径,最后剩下的唯一路径就是关键路径。或者事件最早发生时间和最晚发生 时间相等的事件在路径上。

 

 

最短路径算法(Dijkstra)(一点到任意各点,且各点数均为正数):

  1. 每次从未标记的结点中选择距离出发点最近的结点,标记,收录到最优路径集合中
  2. 计算刚加入结点A的临近结点B的距离(不含标记的结点),若(结点A距离+结点A到B的边长)< 结点B的距离,则更新结点B的距离和前面点。

示例:

9097e1253ee248f39982a6a7bf20c5ef.png

9c10d79d56724f8897321074d6a022ed.png

注意:1.出发点距离出发点为0 2.每次判断完成后,从未标记结点中找距离最小的收入最优路径中,并尝试更新临近结点 3.全部标记完毕,停止,回溯路径

 

Floyd算法(求任意两点间最小距离)

画出有向图的邻接矩阵(此时是邻接关系,不能有中转)。假设有n个节点,则对矩阵进行n次中转迭代。(注意:进行节点n的中转迭代时,n行、n列及对角线元素不参与迭代,可从前一个矩阵直接继承)中转迭代:假设进行节点n的迭代,考察元素ab时,比较当前元素值和an + nb元素值,取较小值。

 

平衡二叉树(有排序的性质)算法:

求法:

c864562bc4ff4aedb4f5c6e63ce17502.png

术语:

平衡因子:左子树高度-右子树高度,绝对值不超过1

LL LR RL RR:前面的字母代表加入结点处于最低不平衡结点的左右子树,后面的字母代表加入结点是某结点的左右孩子,表征位置,不表征修改方案。

注意:插入顺序也会影响平衡二叉树唯一性,因此只有结点和插入顺序都是固定的情况下,平衡二叉树才是唯一的

 

AOV网络拓扑排序:

44b3010fb74c4d73873d20254a572145.png

f04cf438e2374bcabdfc3770e5e3fd91.png

图、邻接表、邻接矩阵的DFS、BFS:

0a92614716084fe98c5e63620ed7853d.png

访问的优先次序:从小到大

DFS的访问特点:一访问到临近结点就立刻下潜访问下一级临近结点,除非访问失败否则不回退,一旦回退就尝试访问其它临近结点。逻辑结构:栈。

BFS的访问特点:要完全访问当前层级所有的临近结点再从小的结点下潜一级,访问完之后回退到次大结点下潜。逻辑结构:队列。

 

 

邻接表(编号均不是必须):

67821d1316ac47a99e297b88c7b7174c.png

 

邻接多重表:

bfff837819f14a77864bf9aa4368c6be.png

孩子兄弟表示法:左孩子、右兄弟

 

十字链表:

a774f546b7c84ae98cc621fc37ed503c.png

 

bbb79463646b46caa39946159928be8a.png

 

构造散列表:

先画空间

对每个数据根据散列函数取模

线性探测法:(不给)从正常位置开始向后找(看成循环数组)

二次探测法:(一个函数)向前1、向后1、向前4、向后4....(看成循环数组)

双散列法:(会给两个函数)第一次取模是地址,第二次取模是步长(看成循环数组)

 

一维哈希表的成功查找平均长度:分母是元素数目,分子是对各个元素进行查找时所需要的次数之和(进行元素查找时,不是盲目从第一个空间找,也不是从第一个非空空间找,而是根据哈希函数有判断得开始找)

一维哈希表得失败查找平均长度:分母是由哈希函数决定的:例如字母表数值/2下取整的取值为0-13,则查找失败得起始点为0-13。分子是到空指针或者最后一个元素元素的查找次数。

辨析:成功查找的起始点是可查元素对应的下标,可重复,数量由元素决定;失败查找的起始点是有效下标,不可重复,数量由哈希函数决定。

 

顺序表最后一个元素的地址(a为首元素地址,i为元素个数,m为元素的长度):

9e6d56aec39c45b295b90a26d9270405.png

 

循环队列:   

判队满:(r+1)%max == f

求队长:(r-f+max)%max

增数据:r=(r+1)%max

 

二叉树小结论记忆:

(二叉树都满足,关于度的结论)n2-n0=1(记忆:n0大)

(满二叉树的节点个数结论)高度log2(n)的下取整+1、第k层的节点个数pow(2,k-1)、总的节点个数pow(2,h)+1

 

图论小结论记忆:

对于无向图,所有顶点的度数之和等于图的边数的两倍(算两次)

对于有向图,所有顶点的入读之和等于所有顶点的出度之和的2倍(有始有终)

排序:

算法的时间复杂度记忆:

插帽龟很稳,喜欢选帽插,插完就慌了

插帽龟很稳:直接插入,冒泡排序,归并排序很稳定

喜欢选帽插,插完就慌了:直接选择排序,冒泡排序,直接插入排序的时间复杂度为n方

快归队,n佬:快速排序,归并排序,堆排序的时间复杂度是nlog2n

 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

开源工具专题-04 Atlassian Crowd部署备份及迁移

开源工具专题-04 Atlassian Crowd部署备份及迁移 注&#xff1a; 本教程由羞涩梦整理同步发布&#xff0c;本人技术分享站点&#xff1a;blog.hukanfa.com转发本文请备注原文链接&#xff0c;本文内容整理日期&#xff1a;2024-05-29csdn 博客名称&#xff1a;五维空间-影子&…

SpringBoot与Spring Framework提供的缓存抽象

目录 缓存 项目总结 新建一个SpringBoot项目 pom.xml application.properties CacheConfig Book BookRepository接口 BookService服务类 BookController控制器 SpringbootCacheApplication启动类 启动项目&#xff0c;使用Postman测试 参考博文&#xff1a; 1、使用…

无人港口/码头兴起,可视化大屏功不可没。

码头/港口可视化大屏可以为管理上带来多方面的价值&#xff0c;包括但不限于&#xff1a; 1. 实时监控&#xff1a; 大屏可以将港口的各种数据、设备状态、船舶位置等信息实时展示&#xff0c;管理人员可以通过大屏随时监控港口的运营情况&#xff0c;及时发现并处理问题。 2…

第13章 常用类

一、包装类 二、String String的常用方法&#xff1a; equals&#xff1a;判断内容是否相等&#xff0c;区分大小写。 String str1 "hello";String str2 "Hello";System.out.println(str1.equals(str2));//false equalsIgnoreCase&#xff1a;判断内容…

清华大学提出IFT对齐算法,打破SFT与RLHF局限性

监督微调&#xff08;Supervised Fine-Tuning, SFT&#xff09;和基于人类反馈的强化学习&#xff08;Reinforcement Learning from Human Feedback, RLHF&#xff09;是预训练后提升语言模型能力的两大基础流程&#xff0c;其目标是使模型更贴近人类的偏好和需求。 考虑到监督…

一文看懂标准版和Pro版的区别

在CRMEB的众多产品中&#xff0c;有这样两款产品经常被拿来比较&#xff0c;它们就是CRMEB的标准版和Pro版商城系统&#xff0c;今天&#xff0c;我们就来盘一下这两款系统之间究竟有哪些不同。 1、Pro版系统性能更卓越 CRMEB Pro版采用Tp6 SwooleRedis高性能框架开发&#…

游戏联运平台如何助力游戏行业飞速发展?

随着科技的进步和互联网的普及&#xff0c;游戏行业正以前所未有的速度飞速发展。在这个过程中&#xff0c;游戏联运平台凭借其独特的优势和功能&#xff0c;成为了推动游戏行业腾飞的关键力量。本文将探讨游戏联运平台如何助力游戏行业实现飞速发展。 一、游戏联运平台的定义与…

四川易点慧电商抖音小店信誉之店

在当下这个电商飞速发展的时代&#xff0c;如何在众多网店中挑选出一家既可靠又值得信赖的店铺&#xff0c;成为了消费者们关注的焦点。四川易点慧电子商务有限公司抖音小店以其卓越的品质和诚信的经营&#xff0c;逐渐在抖音平台上崭露头角&#xff0c;成为了众多消费者心中的…

北京大学第一医院与智源研究院共同发布基于可信执行环境的AI医学影像挑战赛

肾动脉狭窄是导致继发性高血压及肾功能不全的常见原因&#xff0c;而目前针对肾动脉狭窄功能学的评估尚处于探索阶段。数据保护和可信计算环境是目前人工智能技术应用于临床研究的一大瓶颈。北京大学第一医院与北京智源人工智能研究院心脏AI 联合研究中心特发布基于可信执行环境…

FreeSwitch视频会议同时支持内网和外网接入

我们在使用freeswitch进行视频会议时&#xff0c;之前所有的用户都是通过外网的方式接入&#xff0c;因为fs给其返回的sdp协议内容里&#xff0c;只需要fs配置的外网IP就可以了&#xff1b;最近由于引入新的业务需要有其他内网的服务器也可以直接接入fs的视频会议房间&#xff…

VirtualBox虚拟机与bhyve虚拟机冲突问题解决@FreeBSD

问题 在安装完bhyve虚拟系统的主机上启动VirtualBox虚拟机的时候&#xff0c;报错&#xff1a;不能为虚拟电脑 debian 打开一个新任务. VirtualBox cant operate in VMX root mode. Please close all other virtualization programs. (VERR_VMX_IN_VMX_ROOT_MODE). 返回 代码…

5292A 物联网信号分析仪

5292A 物联网信号分析仪 —— 10MHz&#xff5e;6GHz —— 简述 5292A物联网信号分析仪是一款通用的矢量信号分析仪&#xff0c;频率范围覆盖 10MHz&#xff5e;6GHz&#xff0c;具有良好的频率、功率测量精度和稳定度&#xff1b;支持模拟与数字调制信号、全制式的通信标准…

Linux DHCP server 配置

参考&#xff1a;linux dhcp配置多vlan ip_linux 接口vlan-CSDN博客 配置静态IP地址&#xff1a; 给固定的MAC地址分配指定的IP地址&#xff0c;固定的IP地址不必包含在指定的IP池中&#xff0c;如果包含在IP地址池中&#xff0c;固定的IP地址会从IP地址池中移除 配置方法&…

数组-检查数组内是否存在和为7的倍数的子序列

一、题目描述 二、解题思路 这里首先要分辨清楚是子序列还是子数组 原数组&#xff1a;[1,2,3,4,5] 子序列&#xff1a;元素和元素之间相对位置保持不变&#xff0c;但是在原数组中不一定连续&#xff0c;如&#xff1a;[1,3,4]&#xff1b; 子数组&#xff1a;元素元素之间保…

小型水库水雨情和大坝安全监测解决方案

小型水库水雨情和大坝安全监测解决方案 小型水库作为重要的水资源管理和防洪调蓄设施&#xff0c;在保障农业灌溉、居民饮水及防洪安全方面发挥着不可或缺的作用。然而&#xff0c;由于其规模限制&#xff0c;小型水库往往在水雨情监测和大坝安全评估方面面临资源和技术的双重…

全球市值最高的能源公司沙特阿美股份拟出售,筹集百亿美元

KlipC报道&#xff1a;据5月28日市场消息&#xff0c;沙特政府可能最快会在本周宣布拟出售国营石油公司沙特阿美股份&#xff0c;筹集100亿-200亿美元。 沙特阿美是世界最大的石油生产商&#xff0c;2019年在沙特证交所上市。沙特的经济高度依赖石油出口。此前&#xff0c;受石…

DxO PhotoLab 6 for Mac/Win:专业RAW图片编辑的利器

DxO PhotoLab 6 for Mac/Win是一款专为摄影师和摄影爱好者打造的专业RAW图片编辑软件&#xff0c;它将先进的技术、丰富的功能与直观的操作完美结合&#xff0c;为用户提供了一款全面而强大的图片处理工具。 一、技术领先&#xff0c;处理RAW图片更高效 DxO PhotoLab 6采用了…

Swift 构造过程

构造过程 一、存储属性的初始赋值1、构造器2、默认属性值 二、自定义构造过程1、形参的构造过程2、形参命名和实参标签3、不带实参标签的构造器形参4、可选属性类型5、构造过程中常量属性的赋值 三、默认构造器结构体的逐一成员构造器 四、值类型的构造器代理五、类的继承和构造…

[MySQL最详细的知识点]

MySQL 关系型数据库以一行作为一个记录,列数据库以一列为一个记录一行是一个记录,一列是一个字段一行是一个实体,一列是一个属性 MySQL引擎: MySQL引擎&#xff1a;可以理解为&#xff0c;MySQL的“文件系统”&#xff0c;只不过功能更加强大。​MySQL引擎功能&#xff1a;除…

小白跟做江科大32单片机之蜂鸣器

1.复制之前编写的工程库项目&#xff0c;详细工程库创建过程如下链接&#xff1a; 小白跟做江科大32单片机之LED闪烁-CSDN博客https://blog.csdn.net/weixin_58051657/article/details/139295351?spm1001.2014.3001.55022.按照江科大老师给的图片进行连接蜂鸣器 3.修改main.c…