当前位置: 首页 > news >正文

【软考】9.3 二叉树存储/遍历/线索/最优/查找/平衡

《树与二叉树》

  • 二叉树的顺序存储结构
  • 顺序存储只适用于完全二叉树和满二叉树,一般二叉树不适用
  • i =2 的左孩子为 2i =4,右孩子为 2i +1 =5
    在这里插入图片描述
  • 二叉树的链式存储结构
  • 链式存储适用于二叉树;空结点用“∧”表示
  • 二叉链表:左孩子,右孩子
  • 三叉链表:左孩子,双亲结点,右孩子
    在这里插入图片描述
  • 二叉树的遍历
  • 先序(前序)遍历:根,左,右
  • 中序遍历:左,根,右
  • 后序遍历:左,右,根
  • 层次遍历:从上到下,从左到右
    在这里插入图片描述
  • 深度为k的二叉树(满二叉树)至多有 (2^k) -1 个节点
  • 顺序存储:完全二叉树,一般二叉树需补虚节点——> 2^4 -1 = 15
  • 三叉链表:每个节点有3个指针域;——> 1+2+1+0+2+2=8
    在这里插入图片描述
  • 线索二叉树
  • 保存二叉树遍历时某节点的前驱节点和后继节点的信息
  • n个节点的二叉树使用链表存储,则有 n+1 哥空指针域
    在这里插入图片描述
  • 哈夫曼树(最优二叉树)
  • 带权路径长度最短的树
  • 树的路径长度:根节点到每一个叶子节点的路径长度之和
  • 树的带权路径长度:树的所有叶子节点的带权路径长度之和
    在这里插入图片描述
  • 哈夫曼树的求法:
  • 最小权值为叶子节点,其和为父节点,后删除叶子节点,不断循环,直到所有权值用完
  • 哈夫曼树编码:左节点值小于右节点值;左分支设为0,右分支设为1
    在这里插入图片描述在这里插入图片描述
  • 查找二叉树(排序二叉树)
  • 每个节点的所有左孩子节点值都小于父节点值,而右孩子则大于(左 < 根 < 右)
  • 每次查找范围缩小一半,查找效率较高
  • 深度越大,效率越低
    在这里插入图片描述
    在这里插入图片描述
  • 单枝树:深度最大,效率最低
  • 平衡二叉树(AVL树):深度最小,效率最高;左子树和右子树的高度之差的绝对值不超过1;
    在这里插入图片描述
    在这里插入图片描述
  • 二叉树遍历列速解

已知(先序 / 后序) 与中序,求(后序 / 先序)
在这里插入图片描述

相关文章:

【软考】9.3 二叉树存储/遍历/线索/最优/查找/平衡

《树与二叉树》 二叉树的顺序存储结构 顺序存储只适用于完全二叉树和满二叉树&#xff0c;一般二叉树不适用i 2 的左孩子为 2i 4&#xff0c;右孩子为 2i 1 5 二叉树的链式存储结构 链式存储适用于二叉树&#xff1b;空结点用“∧”表示二叉链表&#xff1a;左孩子&#xff0…...

关于矿井地面电力综合自动化系统的研究与产品选型

安科瑞 崔丽洁 摘要&#xff1a;煤矿供电系统是煤矿生产的重要动力保障 , 一旦电力中断 , 生产将被迫停止 , 同时停电后容易发生瓦斯积聚爆炸、淹井等恶性事故&#xff0c;现有配电室采用不同厂商的保护装 置产品&#xff0c;没有形成有效的监控配电系统&#xff0c;不便于管…...

论文阅读:Offboard 3D Object Detection from Point Cloud Sequences

目录 概要 Motivation 整体架构流程 技术细节 3D Auto Labeling Pipeline The static object auto labeling model The dynamic object auto labeling model 小结 论文地址&#xff1a;[2103.05073] Offboard 3D Object Detection from Point Cloud Sequences (arxiv.o…...

Python学习基础笔记六十八——循环

循环是编程语言常见的流程控制。 Python语句要让计算机反复地做一些事情&#xff0c;就要用到循环语句。 有While和for循环。 while循环&#xff1a; command input("请输入命令:") while command ! exit:print(f输入的命令是{command})command input("请输…...

部署k8s dashboard(这里使用Kubepi)

9. 部署k8s dashboard&#xff08;这里使用Kubepi&#xff09; Kubepi是一个简单高效的k8s集群图形化管理工具&#xff0c;方便日常管理K8S集群&#xff0c;高效快速的查询日志定位问题的工具 部署KubePI&#xff08;随便在哪个节点部署&#xff0c;我这里在主节点部署&#…...

Java Lambda表达式的使用

我们了解了 java Lambda 的概念并可以在匿名类的场合使用 Lambda 语法进行简单替换。本节主要介绍在 Java 中如何使用 Lambda 表达式。 作为参数使用Lambda表达式 Lambda 表达式一种常见的用途就是作为参数传递给方法&#xff0c;这需要声明参数的类型声明为函数式接口类型。…...

【初始C语言8】详细讲解初阶结构体的知识

前言 &#x1f493;作者简介&#xff1a; 加油&#xff0c;旭杏&#xff0c;目前大二&#xff0c;正在学习C&#xff0c;数据结构等&#x1f440; &#x1f493;作者主页&#xff1a;加油&#xff0c;旭杏的主页&#x1f440; ⏩本文收录在&#xff1a;再识C进阶的专栏&#x1…...

<C++> IO流

C语言的输入与输出 在C语言当中&#xff0c;我们使用最频繁的输入输出方式就是scanf与printf&#xff1a; scanf&#xff1a; 从标准输入设备&#xff08;键盘&#xff09;读取数据&#xff0c;并将读取到的值存放到某一指定变量当中。printf&#xff1a; 将指定的数据输出到…...

基于单目相机的2D测量(工件尺寸和物体尺寸)

目录 1.简介 2.基于单目相机的2D测量 2.1 想法&#xff1a; 2.2 代码思路 2.2 主函数部分 1.简介 基于单目相机的2D测量技术在许多领域中具有重要的背景和意义。 工业制造&#xff1a;在工业制造过程中&#xff0c;精确测量是确保产品质量和一致性的关键。基于单目相机的2…...

23面向对象案例1

目录 1、计算连续表达式的一个过程 2、优化后的代码 为什么不能return resultn&#xff1f; 3、用面向对象的方法可以解决冗余的问题&#xff0c;但是还是不能解决result的值可以被随意修改的问题 4、解决不能被随意修改的问题&#xff0c;可以将类属性改成私有变量吗&…...

go语言基础之常量与itoa

视频学习地址&#xff1a;Go零基础入门_在线视频教程-CSDN程序员研修院 一. 常量 定义&#xff1a;常量是一个简单值的标识符&#xff0c;在程序运行时&#xff0c;不会被修改的量。注意&#xff1a;常量中的数据类型只可以是布尔型、数字型&#xff08;整数型、浮点型和复数…...

民宿酒店订房房态商城小程序的作用是什么

外出旅游出差&#xff0c;酒店民宿总是很好的选择&#xff0c;随着经济复苏&#xff0c;各地旅游及外出办公人次增多&#xff0c;酒店成绩随之增加&#xff0c;市场呈现多品牌酒店经营形式。 区别于以前&#xff0c;如今互联网深入各个行业&#xff0c;酒店经营也面临着困境。…...

acwing算法基础之数据结构--栈和队列

目录 1 知识点2 模板 1 知识点 栈&#xff1a;先进后出。先进的就是栈底&#xff0c;后进的就是栈顶。后进先出嘛&#xff0c;所以在栈顶弹出元素。 队列&#xff1a;先进先出。先进的就是队头&#xff0c;后进的就是队尾。先进先出嘛&#xff0c;所以在队头弹出元素。 单调…...

关于导出的Excel文件的本质

上篇文章中提到关于xlsx改造冻结窗格的代码&#xff0c;我是怎么知道要加pane的呢&#xff0c;加下来就把我的心路历程记录一下。 我改造之前也是没有头绪的&#xff0c;我网上查了很多&#xff0c;只告诉我如何使用&#xff0c;但源码里没有针对!freeze的处理&#xff0c;所以…...

Rust中FnOnce如何传递给一个约束Fn的回调

Rust中FnOnce如何传递给一个约束Fn的回调 下面的代码&#xff0c;set_cb(func);会报错&#xff0c;如何包装能够做到这样的效果&#xff1a; fn set_cb<F: Fn() static>(handler: F) {handler(); }fn main() {let join_handle std::thread::spawn(|| {});let func |…...

【JUC】线程通信与等待唤醒机制

文章目录 1. 线程通信2. Object类中的wait和notify方法实现等待和唤醒3. Condition接口中的await和signal方法实现等待和唤醒4. LockSupport实现等待和唤醒4.1 优点 1. 线程通信 多个线程在处理同一个资源&#xff0c;但是处理的动作&#xff08;线程的任务&#xff09;却不相…...

C#面对对象(英雄联盟人物管理系统)

目录 英雄信息类 因为要在两个窗体里面调用字典&#xff0c;所以要写两个类来构建全局变量 添加功能 查询功能 英雄信息类 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace WindowsFormsApp…...

2023年中国分布式光纤传感产量、需求量及行业市场规模分析[图]

分布式光纤传感器中的光纤能够集传感、传输功能于一体&#xff0c;能够完成在整条光纤长度上环境参量的空间、时间多维连续测量&#xff0c;具有结构简单、易于布设、性价比高、易实现长距离等独特优点&#xff0c;常用的分布式光纤传感器有光时域反射仪、布里渊分析仪、喇曼反…...

B2R Raven: 2靶机渗透

B2R Raven: 2靶机渗透 视频参考&#xff1a;ajest &#xff1a;https://www.zhihu.com/zvideo/1547357583714775040?utm_id0 原文参考&#xff1a;ajest &#xff1a;https://zhuanlan.zhihu.com/p/270343652 文章目录 B2R Raven: 2靶机渗透1 启动靶机&#xff0c;查看后网卡…...

SpringBoot-黑马程序员-学习笔记(六)

目录 76.常用计量单位使用 77.bean属性校验 81.测试表现层 82.发送虚拟请求 94.springboot读写redis的客户端 100.ElasticSearch&#xff08;简称ES&#xff09; 一个分布式全文搜索引擎 76.常用计量单位使用 Data Component ConfigurationProperties(prefix "serve…...

从标定板到生产线:OpenCV实战工业相机畸变校正全流程

1. 工业相机畸变&#xff1a;产线精度杀手的前世今生 第一次在产线上看到相机拍出来的零件尺寸和实物差了0.5毫米时&#xff0c;我盯着屏幕愣了三分钟——这个误差足以让整个自动化装配线变成废品生产线。工业相机的畸变就像近视眼没戴眼镜&#xff0c;看到的物体位置和形状都…...

深入解析原生HTTP与MCP服务器的交互机制

1. 原生HTTP与MCP服务器交互的核心机制 当你第一次听说MCP服务器时&#xff0c;可能会觉得这是个高大上的概念。其实简单来说&#xff0c;MCP&#xff08;Model Context Protocol&#xff09;就是一种让客户端和AI模型服务端进行高效通信的协议。而HTTP作为互联网最基础的通信协…...

拨叉[831002] 2-钻φ60孔夹具

拨叉作为机械传动系统中的关键零件&#xff0c;其加工精度直接影响设备运行的稳定性。在2-钻φ60孔的工序中&#xff0c;专用夹具的核心作用在于通过精准定位与可靠夹紧&#xff0c;确保孔径尺寸、位置度及表面粗糙度等关键指标符合设计要求。该夹具采用“一面两销”定位原理&a…...

Obsidian插件管理技巧:从零开始配置你的第二个知识库

Obsidian插件管理技巧&#xff1a;从零开始配置你的第二个知识库 当你已经熟悉了Obsidian的基础操作&#xff0c;并建立了第一个知识库后&#xff0c;很可能会想要创建第二个知识库来管理不同的项目或学习领域。但这时你会发现&#xff0c;新建的知识库并没有自动继承你精心配置…...

FLUX.1-dev像素生成器教程:多提示词加权与逻辑组合语法详解

FLUX.1-dev像素生成器教程&#xff1a;多提示词加权与逻辑组合语法详解 1. 像素幻梦创意工坊简介 像素幻梦 (Pixel Dream Workshop) 是一款基于FLUX.1-dev扩散模型的像素艺术生成工具&#xff0c;专为创作者设计。它采用16-bit像素风格的现代明亮界面&#xff0c;提供沉浸式的…...

除了xfs_repair,你的CentOS7/XFS文件系统自救工具箱里还应该有什么?

构建CentOS7/XFS文件系统全栈自救工具箱&#xff1a;从应急修复到主动防御 当服务器突然拒绝启动&#xff0c;屏幕上跳出"I/O error metadata corruption detected"的红色警告时&#xff0c;大多数管理员的第一反应是抓起xfs_repair这根救命稻草。但真正的系统健壮性…...

如何快速掌握Fast-F1:Python赛车数据分析实战指南

如何快速掌握Fast-F1&#xff1a;Python赛车数据分析实战指南 【免费下载链接】Fast-F1 FastF1 is a python package for accessing and analyzing Formula 1 results, schedules, timing data and telemetry 项目地址: https://gitcode.com/GitHub_Trending/fa/Fast-F1 …...

贪心算法3(c++)

概念题目最短前缀题目描述 一个字符串的前缀是从该字符串的第一个字符起始的一个子串。例如carbon的字串是:cca,carcarb,carbo,和carbon。我们现在希望能用前缀来缩略的表示单词。例如,carbohydrate通常用carb来缩略表示&#xff0c;现在给你一组单词&#xff0c;要求你找到唯一…...

告别‘Illegal instruction’:为老旧ARM芯片(如鲲鹏920)定制MongoDB 4.4.9的完整避坑流程

为老旧ARM芯片定制MongoDB 4.4.9的完整避坑指南 当你在国产ARM服务器上部署MongoDB时&#xff0c;是否遇到过Illegal instruction错误&#xff1f;这个问题往往源于硬件与软件版本之间的指令集不匹配。本文将带你深入理解ARM架构的版本差异&#xff0c;并提供一套完整的解决方案…...

Phi-4-mini-reasoning+ollama打造教育AI助手:中小学奥数题自动解析案例

Phi-4-mini-reasoningollama打造教育AI助手&#xff1a;中小学奥数题自动解析案例 1. 为什么需要教育AI助手&#xff1f; 中小学奥数题解析一直是家长和老师的痛点。传统方式需要专业老师一对一辅导&#xff0c;成本高且效率低。很多家长自己也不会解题&#xff0c;辅导孩子作…...