【专题】树和二叉树的转换

目录

  • 一、树转换成二叉树
    • 步骤一:加线——在兄弟之间加连线
    • 步骤二:抹线——除结点的左孩子外,去除其与其余孩子之间的关系
    • 步骤三:旋转——以树的根结点为轴心,将整树顺时针转45°
  • 二、二叉树转换成树
    • 步骤1:加线——若p结点是双亲结点的左孩子,将p沿分支找到的所有右孩子,与p的双亲连线
    • 步骤二:抹线——抹掉原二叉树中双亲与右孩子之间的连线
    • 步骤三:将结点按层次排列,形成树结构
  • 三、例题
    • 1. 树转换为二叉树
    • 2. 二叉树转换为树
    • 3. 写出下图所示树的先序和后序遍历序列并将之转换成一棵二叉树

一、树转换成二叉树

  • 步骤1:加线-在兄弟之间加一连线;
  • 步骤2:抹线-对每个结点,除了其左孩子外,去除其与其余孩子之间的关系;
  • 步骤3:旋转-以树的根结点为轴心,将整树顺时针转45°;

树T:
在这里插入图片描述

步骤一:加线——在兄弟之间加连线

在这里插入图片描述

步骤二:抹线——除结点的左孩子外,去除其与其余孩子之间的关系

在这里插入图片描述

步骤三:旋转——以树的根结点为轴心,将整树顺时针转45°

在这里插入图片描述

二、二叉树转换成树

  • 步骤1:加线-若p结点是双亲结点的左孩子,将p的右孩子,沿分支找到的所有右孩子与p的双亲连线;
  • 步骤2:抹线-抹掉原二叉树中双亲与右孩子之间的连线;
  • 步骤3:将结点按层次排列,形成树结构;

二叉树B:
在这里插入图片描述

步骤1:加线——若p结点是双亲结点的左孩子,将p沿分支找到的所有右孩子,与p的双亲连线

在这里插入图片描述

步骤二:抹线——抹掉原二叉树中双亲与右孩子之间的连线

在这里插入图片描述

步骤三:将结点按层次排列,形成树结构

在这里插入图片描述

三、例题

1. 树转换为二叉树

在这里插入图片描述

2. 二叉树转换为树

在这里插入图片描述

3. 写出下图所示树的先序和后序遍历序列并将之转换成一棵二叉树

在这里插入图片描述
【答案】
先序遍历:ABDEGHICF
后序遍历:DGHIEBFCA
转换后的二叉树:
在这里插入图片描述

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

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

相关文章

Spring Boot启动慢如何分析

如果发现项目启动慢,你知道怎么分析慢的原因吗? 分析方法 自定义监听器 SpringApplicationRunListener是Spring Boot中的一个接口,它的作用是在SpringApplication运行的各个阶段提供回调接口,以便我们可以在这些阶段执行自定义…

【期末复习向】长江后浪推前浪之ChatGPT概述

参考文章:GPT系列模型技术路径演进-CSDN博客 这篇文章讲了之前称霸NLP领域的预训练模型bert,它是基于预训练理念,采用完形填空和下一句预测任务2个预训练任务完成特征的提取。当时很多的特定领域的NLP任务(如情感分类&#xff0c…

解决下载huggingface模型权重无法下载的问题

文章目录 方法一(推荐)方法二方法三依然存在的问题 由于某些原因,huggingface的访问速度奇慢无比,对于一些模型(比如大语言模型LLM)的权重文件动辄几十上百G,如果用默认下载方式,很可能中断,这里推荐几种方式。 方法一…

论文自己改过后怎么降重 papergpt

大家好,今天来聊聊论文自己改过后怎么降重,希望能给大家提供一点参考。 以下是针对论文重复率高的情况,提供一些修改建议和技巧,可以借助此类工具: 论文自己改过后如何降重 在论文修改过程中,我们往往会对…

最新AI绘画Midjourney绘画提示词Prompt教程

一、Midjourney绘画工具 SparkAi【无需魔法使用】: sparkAi创作系统是基于ChatGPT进行开发的Ai智能问答系统和Midjourney绘画系统,支持OpenAI-GPT全模型国内AI全模型。本期针对源码系统整体测试下来非常完美,可以说SparkAi是目前国内一款的…

VR云游打造沉浸式文旅新体验,延伸智慧文旅新业态

从“跃然纸上”到“映入眼帘”,随着国家数字化战略的深入实施,文旅产业的数字化转型正在不断加快,“沉浸式”逐渐成为了文旅消费新热点。VR技术与文旅产业相融合,新产品、新模式、新业态不断涌现,文旅资源逐渐“活”起…

ACT、NAT、NATPT和EASY-IP

目录 一、ACL 1.ACL 2.ACL的两种应用匹配机制 3.ACL的基本类型 4.ACL命令操作 5.ACL实验: 4.ACL的应用原则: 5.匹配原则: 二、NAT 1.NAT的原理及作用: 2.NAT分类 3.NAT配置 三、EASY-ip实验 四、NATPT 五、通配符 …

Nginx七层代理,四层代理 + Tomcat多实例部署

目录 1.tomcat多实例部署 准备两台虚拟机 进入pc1 pc2同时安装jdk 进入pc1 pc2安装tomcat PC1配置(192.168.88.50) 安装tomcat多实例 tomcat2中修改端口 启动tomcat1 tomcat2 分别在三个tomcat服务上部署jsp的动态页面 2.nginx的七层代理&…

使用opencv的Canny算子实现图像边缘检测

1 边缘检测介绍 图像边缘检测技术是图像处理和计算机视觉等领域最基本的问题,也是经典的技术难题之一。如何快速、精确地提取图像边缘信息,一直是国内外的研究热点,同时边缘的检测也是图像处理中的一个难题。早期的经典算法包括边缘算子方法…

使用set和emit在uni-app中实现响应式属性和自定义事件

在uni-app中,我们经常需要动态设置响应式属性,并且通过自定义事件来实现组件间的通信。这时,我们可以使用set和emit来轻松实现这些功能。 使用$set动态设置响应式属性 在Vue中,我们可以使用来动态设置响应式属性。在uniapp中使用…

java基础知识④:设计模式

目录 一、设计模式 1️⃣创建型设计模式(常用:单例、工厂、抽象工厂) 2️⃣结构型设计模式(常用:适配器、装饰者、外观、代理) 3️⃣行为型设计模式(常用:观察者、策略、模板方法、命…

如何使用ArcGIS Pro裁剪影像

对影像进行裁剪是一项比较常规的操作,因为到手的影像可能是多种范围,需要根据自己需求进行裁剪,这里为大家介绍一下ArcGIS Pro中裁剪的方法,希望能对你有所帮助。 数据来源 本教程所使用的数据是从水经微图中下载的影像和行政区…

Springboot的火车票订票系统(有报告)。Javaee项目,springboot项目。

演示视频: Springboot的火车票订票系统(有报告)。Javaee项目,springboot项目。 项目介绍: 采用M(model)V(view)C(controller)三层体系结构&#…

Spring Boot整合Sharding-JDBC实现数据脱敏

目录 背景ShardingSphere脱敏规则sharding-jdbc数据脱敏数据脱敏配置数据分片 数据脱敏配置 背景 对互联网公司、传统行业来说,数据安全一直是极为重视和敏感的话题。数据脱敏是指对某些敏感信息通过脱敏规则进行数据的变形,实现敏感隐私数据的可靠保护…

【Avue】点击新增再点击表单得radio选项出现新表单,且编辑页面关不掉新表单处理方法

一、问题描述 1、点击新增 2、 点击radio选择值 1、点击否得时候没反应 2、点击是得时候出现新表单 2.1、旧代码 {label: 是否危险源,prop: isBigdanger,searchLabelWidth: 120,overHidden: true,span: 24,rules: [{required: true,message: 请选择是否重大危险源,trigger: bl…

Mapreduce小试牛刀(2)--java api

1.同hdfs 的java api,我们首先要在IDE中建立一个maven项目 pom.xml中配置如下&#xff1a; <dependencies><dependency><groupId>org.apache.hadoop</groupId><artifactId>hadoop-mapreduce-client-common</artifactId><version>3.…

磁盘坏道扫描工具 Macrorit Disk Scanner v6.7.0 中文免费版 -供大家学习研究参考

非常方便实用的磁盘坏道修复软件。Wipe Bad Disk功能强大好用&#xff0c;通过特殊的算法来强制将硬盘的坏道删除清空格式化&#xff0c;从而拯救因产生坏道而不敢继续使用的硬盘!要注意的是经过这块软件清空的硬盘数据基本上是不能被恢复的&#xff0c;所以操作前请一定要备份…

武林风云之linux组软raid0

小y可喜欢玩文明系列的游戏了&#xff0c;因为小y也一直喜欢造轮子&#xff0c;属于自己的轮子。 每次小y听到”要向雄鹰一样&#xff0c;定要遨游于天际。”感觉自己给自己打了一针强心剂&#xff0c;要求自己拼搏进取。 众所周知&#xff0c;文明是个原生的linux游戏&#xf…

Linux 系统 yum 安装 jdk1.8

1、首先检查是否存在jdk java -version上图这样就是系统没有找到已经安装的jdk 2.查看jdk版本列表 yum -y list java*执行此命令会显示所有版本 jdk 安装包 3、下载安装jdk 这里安装的是jdk1.8 yum install java-1.8.0-openjdk-devel.x86_64这里输入回车y继续安装 4、再次检…

学习Django从零开始之三

搭建虚拟python环境 搭建开发环境有多种方式&#xff0c;其中包括本地直接安装Python的可执行文件&#xff0c;使用virtualenv&#xff0c;以及使用Anaconda和Miniconda等工具。这些工具在创建Python虚拟环境方面各有特点。具体不同之处感兴趣的同学可以自行查阅相关资料。 简…