【树与二叉树的转换,哈夫曼树的基本概念】

文章目录

  • 树与二叉树的转换
  • 将二叉树转化为树
  • 森林与二叉树的转化(二叉树与多棵树之间的关系)
  • 二叉树转换为森林
  • 森林的先序遍历
    • 1)先序遍历
    • 2)后序遍历
  • 哈夫曼树的基本概念
  • 森林转换成二叉树(二叉树与多棵树的关系)

树与二叉树的转换

将树转化为二叉树处理,利用二叉树的算法实现对树的操作。
由于树和二叉树都可以用二叉树链表做存储结构,则二叉链表的媒介可以导出与二叉树之间的对应关系。
给定一棵树,可以找到唯一的一棵二叉树与之对应。
在这里插入图片描述
在这里插入图片描述
树变二叉树:兄弟相连留长子。
例如:
①兄弟相连

在这里插入图片描述
②留长子
在这里插入图片描述
在这里插入图片描述

将二叉树转化为树

左孩右右连双亲,去掉原来右孩线。
在这里插入图片描述
在这里插入图片描述

森林与二叉树的转化(二叉树与多棵树之间的关系)

树变二叉根相连
①将各棵树分别转换为二叉树。
②将每棵树的根结点用线相连。
③以第一棵树根结点为二叉树的根,再以根结点为轴心,顺时针旋转,构成二叉树结构。
在这里插入图片描述

二叉树转换为森林

去掉全部右孩线,孤立二叉再还原。
在这里插入图片描述

森林的先序遍历

1)先序遍历

  • 若森林不空,则先访问根结点,然后从左向右的顺序,先遍历根结点的每一棵子树(依次从左至右对森林中的每一棵树进行先根遍历)。
  • 树的先根遍历书序应该和二叉树的先序遍历顺序相同。

2)后序遍历

  • 如果树非空,则按从左往右的顺序,后根遍历根结点的每一棵子树,然后访问根结点。
  • 树的后根遍历顺序应与该树对应二叉树遍历顺序相同。

哈夫曼树的基本概念

  • 路径:从树中的一个结点到另一个结点之间的分支构成这两个结点间的路径。
  • 结点的路径长度:两结点路径上的分支数。
    例如:
    在这里插入图片描述这里表示的是从A结点到H结点的路径,路径长度为4。
  • 树的路径长度:从树根到每一个结点的路径长度之和。记作TL。
    例如:
    在这里插入图片描述
    结点数目相同的二叉树中,完全二叉树的路径长度最短的二叉树。

森林转换成二叉树(二叉树与多棵树的关系)

①将各棵树分别转换为二叉树。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【java:牛客每日三十题总结-4】

java:牛客每日三十题总结 总结如下 总结如下 集合相关知识点 元素是否排序和插入顺序无关,取决与集合实现是否考虑了传入对象的java.lang.Comparable接口抽象类和接口相关知识 只能说越来越抽象了 java线程通信的方式 在Java中,常用的线程通信方式有两…

运行npm install卡住不动的几种解决方案

在前端开发经常会遇到运行npm install 来安装工具包一直卡住不动,为此这里提供几种解决方案,供大家参考学习,不足之处还请指正。 第一种方案、首先检查npm代理,是否已经使用国内镜像 // 执行以下命令查看是否为国内镜像 npm con…

【React-Native开发3D应用】React Native加载GLB格式3D模型并打包至Android手机端

【React-Native开发3D应用】React Native加载GLB格式3D模型并打包至Android手机端 【加载3D模型】**React Native上如何加载glb格式的模型**第零步,选择相关模型第一步,导入相关模型加载库第二步,自定义GLB模型加载钩子第三步,借助…

RK3568平台 查看内存的基本命令

一.free命令 free命令显示系统使用和空闲的内存情况,包括物理内存、交互区内存(swap)和内核缓冲区内存。共享内存将被忽略。 Mem 行(第二行)是内存的使用情况。 Swap 行(第三行)是交换空间的使用情况。 total 列显示系统总的可用物理内存和交换空间大小。 used 列显…

k8s、数据存储

数据存储的概念 容器磁盘上的文件的生命周期是短暂的,这就使得在容器中运行重要应用时会出现一些问题。首先,当容器崩溃时,kubelet 会重启它,但是容器中的文件将丢失——容器以干净的状态(镜像最初的状态)…

springboot中定时任务cron不生效,fixedRate指定间隔失效,只执行一次的问题

在调试计算任务的时候,手动重置任务为初始状态,但是并没有重新开始计算,检查定时任务代码: 从Scheduled(fixedRate 120000)可以看到,应该是间隔120秒执行一次该定时任务,查看后台日志,并没有重…

不可否认程序员的护城河已经越来越浅了

文章目录 那些在冲击程序员护城河低代码/无代码开发平台自动化测试和部署工具AI辅助开发工具在线学习和教育平台 面临冲击,程序员应该怎么做深入专业知识:不断学习全栈技能开发解决问题的能力建立人际网络管理和领导技能 推荐阅读 技术和应用的不断发展对…

《Swin Transformer: Hierarchical Vision Transformer using Shifted Windows》阅读笔记

论文标题 《Swin Transformer: Hierarchical Vision Transformer using Shifted Windows》 Swin 这个词貌似来自后面的 Shifted WindowsShifted Windows:移动窗口Hierarchical:分层 作者 微软亚洲研究院出品 初读 摘要 提出 Swin Transformer 可以…

学习笔记:深度学习(3)——卷积神经网络(CNN)理论篇

学习时间:2022.04.10~2022.04.12 文章目录 3. 卷积神经网络CNN3.1 卷积神经网络的概念3.1.1 什么是CNN?3.1.2 为什么要用CNN?3.1.3 人类的视觉原理 3.2 CNN的基本原理3.2.1 主要结构3.2.2 卷积层(Convolution layer)1.…

VR全景如何应用在房产行业,VR看房有哪些优势

导语: 在如今的数字时代,虚拟现实(VR)技术的迅猛发展为许多行业带来了福音,特别是在房产楼盘行业中。通过利用VR全景技术,开发商和销售人员可以为客户提供沉浸式的楼盘浏览体验,从而带来诸多优…

1994-2021年分行业二氧化碳排放量数据

1994-2021年分行业二氧化碳排放量数据 1、时间:1994-2021年 2、来源:原始数据整理自能源年鉴 3、指标:统计年度、行业代码、行业名称、煤炭二氧化碳排放量、焦炭二氧化碳排放量、原油二氧化碳排放量、汽油二氧化碳排放量、煤油二氧化碳排放…

[云原生案例2.2 ] Kubernetes的部署安装 【单master集群架构 ---- (二进制安装部署)】网络插件部分

文章目录 1. Kubernetes的网络类别2. Kubernetes的接口类型3. CNI网络插件 ---- Flannel的介绍及部署3.1 简介3.2 flannel的三种模式3.3 flannel的UDP模式工作原理3.4 flannel的VXLAN模式工作原理3.5 Flannel CNI 网络插件部署3.5.1 上传flannel镜像文件和插件包到node节点3.5.…

[Linux打怪升级之路]-信号的保存和递达

前言 作者:小蜗牛向前冲 名言:我可以接受失败,但我不能接受放弃 如果觉的博主的文章还不错的话,还请点赞,收藏,关注👀支持博主。如果发现有问题的地方欢迎❀大家在评论区指正 目录 一、信号的保…

医学影像系统源码(MRI、CT三维重建)

一、MRI概述 核磁共振成像(英语:Nuclear Magnetic Resonance Imaging,简称NMRI),又称自旋成像(英语:spin imaging),也称磁共振成像(Magnetic Resonance Imag…

前端学习基础知识

环境搭建 windows环境 nodejs版本管理工具NVM nvm全英文也叫node.js version management,是一个nodejs的版本管理工具。nvm和n都是node.js版本管理工具,为了解决node.js各种版本存在不兼容现象可以通过它可以安装和切换不同版本的node.js。 安装学习访…

STM32 GPIO

STM32 GPIO GPIO简介 GPIO(General Purpose Input Output)通用输入输出口,也就是我们俗称的IO口 根据使用场景,可配置为8种输入输出模式 引脚电平:0V~3.3V,部分引脚可容忍5V 数据0就是低电平&#xff0c…

Docker部署ubuntu1804镜像详细步骤

Docker部署ubuntu1804镜像详细步骤 ubuntu镜像库地址:https://hub.docker.com/_/ubuntu/tags?page1&ordering-name 拉取镜像(默认为最新版本): docker pull ubuntu或,拉取指定版本镜像: docker pull…

Flutter案例日程安排首页效果 Lottie动画与Shimmer实现的微光效果

案例效果: Flutter使用的版本 3.13.8,使用fvm管理版本。 加载动态地图示例,使用的是 lottie。 Container buildMapWidget() {return Container(height: 360,padding: const EdgeInsets.only(top: 100, right: 40, left: 40, bottom: 50),de…

Activiti6工作流引擎:Form表单

表单约等于流程变量。StartEvent 有一个Form属性,用于关联流程中涉及到的业务数据。 一:内置表单 每个节点都可以有不同的表单属性。 1.1 获取开始节点对应的表单 Autowired private FormService formService;Test void delopyProcess() {ProcessEngi…

C++ RBTree 理论

目录 这个性质可以总结为 红黑树的最短最长路径 红黑树的路径范围 code 结构 搞颜色 类 插入 插入逻辑 新插入节点 思考:2. 检测新节点插入后,红黑树的性质是否造到破坏? 解决方法 变色 旋转变色 第三种情况,如果根…