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

目录

  • 一、树转换成二叉树
    • 步骤一:加线——在兄弟之间加连线
    • 步骤二:抹线——除结点的左孩子外,去除其与其余孩子之间的关系
    • 步骤三:旋转——以树的根结点为轴心,将整树顺时针转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
转换后的二叉树:
在这里插入图片描述

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

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

相关文章

node.js 启一个前端代理服务

文章目录 前言一、分析技术二、操作步骤2.1、下载依赖2.2、创建一个 serve.js 文件2.3、js 文件中写入以下代码 三、运行: node serve四、结果展示五、总结六、感谢 前言 有时候我们需要做一些基础的页面时,在研发过程中需要代理调用接口避免浏览器跨域…

Java数据结构-通过数组封装-结构分析

1、默认arrayList的数组未初始化 ArrayList<Integer> arrayList new ArrayList<>();System.out.println(ClassLayout.parseInstance(arrayList).toPrintable()); java.util.ArrayList object internals: OFF SZ TYPE DESCRIPTION …

自动驾驶学习笔记(十八)——Lidar感知

#Apollo开发者# 学习课程的传送门如下&#xff0c;当您也准备学习自动驾驶时&#xff0c;可以和我一同前往&#xff1a; 《自动驾驶新人之旅》免费课程—> 传送门 《Apollo 社区开发者圆桌会》免费报名—>传送门 文章目录 前言 Lidar感知 运动补偿 点云分割 总结…

spring面试:一、面试题分类总览+bean线程安全问题+AOP相关问题(定义、使用步骤、编程式事务管理和声明式事务管理和声明式事务管理失效)

面试题分类总览 bean线程安全问题 单例/多例 单例&#xff08;singleton&#xff09;&#xff1a;在每个spring ioc容器中都只有一个实例。 多例&#xff08;prototype&#xff09;&#xff1a;在每个spring ioc容器中有多个实例。 默认情况下spring中的bean都是单例的。但是…

高并发如何实现单用户信息查询接口

高并发如何实现单用户信息查询接口 故事情节 产品&#xff1a;小李&#xff0c;有个单用户信息查询的功能&#xff0c;需要你实现一下小李&#xff1a;这还不简单&#xff0c;两分钟我给你实现两分钟过去…小李&#xff1a;欧克了&#xff0c;部署上线了运维&#xff1a;哪个…

vue3路由跳转及传参

1.创建项目及路由 1.1 创建文件时记得勾选上vue-router&#xff0c;没有勾选也没有关系 // vue3安装命令 npm create vuelatest // 以下选项可根据自己所需&#xff0c;进行选择&#xff0c;不懂就翻译 ✔ Project name: … <your-project-name> ✔ Add TypeScript? …

数组和链表-内存存储分析

1、pom.xml <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://maven.apache.org/POM/4.0.…

tensorflow定制模型和训练算法

1.从自定义损失函数开始 这里先实现一个Lenet-5模型 input_data keras.layers.Input(shape (28,28,1)) conv_1 keras.layers.Conv2D(filters6, kernel_size(5,5), strides1, activationrelu, padding same)(input_data) pool_1 keras.layers.AveragePooling2D(pool_size…

动态规划——斐波那契数列模型:1137.第N个泰波那契数

文章目录 题目描述算法原理1.状态表示(最重要的&#xff09;什么是状态表示&#xff1f;状态表示怎么来的呢&#xff1f;本题的状态表示 2.状态转移方程(最难的&#xff09;本题的状态转移方程 3.初始化(后三步完成剩下百分之一的细节问题&#xff09;本题的初始化 4.填表顺序本…

第23节: Vue3 绑定 HTML 类

在UniApp中使用Vue3框架时&#xff0c;你可以使用类绑定语法来动态地添加或移除HTML元素的类。 下面是一个示例&#xff0c;演示了如何在UniApp中使用Vue3框架使用绑定HTML类&#xff1a; <template> <view> <button click"toggleClass">Toggl…

C语言实现快速傅立叶(FFT)(一)

1. FFT理论相关知识 FFT&#xff08;快速傅里叶变换&#xff09;其本质就是DFT&#xff0c;只不过可以快速的计算出DFT结果&#xff0c;所以首先应该理解DFT&#xff0c;DFT(Discrete Fourier Transform) 离散傅里叶变换的缩写&#xff0c;FFT(Fast Fourier Transform)快速傅里…

【算法与数据结构】376、LeetCode摆动序列

文章目录 一、题目二、解法三、完整代码 所有的LeetCode题解索引&#xff0c;可以看这篇文章——【算法和数据结构】LeetCode题解。 一、题目 二、解法 思路分析&#xff1a;本题难点在于要考虑到不同序列的情况&#xff0c;具体来说要考虑一下几种特殊情况&#xff1a; 1、上…

4.qml 3D-Light、DirectionalLight、PointLight、SpotLight、AxisHelper类深入学习

今天我们学习灯光类 首先来学习Light类&#xff0c;它是所有灯光的虚基类&#xff0c;该类是无法创建的&#xff0c;主要是为子类提供很多公共属性。 常用属性如下所示&#xff1a; ambientColor : color&#xff0c;该属性定义在被该光照亮之前应用于材质的环境颜色。默认值…

oracle 锁表解决办法

相关表介绍 V$LOCKED_OBJECT&#xff08;记录锁信息的表&#xff09;v$session&#xff08;记录会话信息的表&#xff09;v$sql&#xff08;记录 sql 执行的表&#xff09;dba_objects&#xff08;用来管理对象&#xff0c;表、库等等&#xff09; 查询锁表的 SID select b.…

Cockpit upload文件上传漏洞(CVE-2023-1313)

0x01 产品简介 Cockpit 是一个自托管、灵活且用户友好的无头内容平台,用于创建自定义数字体验。 0x02 漏洞概述 Cockpit assetsmanager/upload接口处存在文件上传漏洞,攻击者可通过该漏洞在服务器端任意上传代码,写入后门,获取服务器权限,进而控制整个web服务器。 0x0…

基于SpringBoot的语言课学习系统

文章目录 项目介绍主要功能截图:部分代码展示设计总结项目获取方式🍅 作者主页:超级无敌暴龙战士塔塔开 🍅 简介:Java领域优质创作者🏆、 简历模板、学习资料、面试题库【关注我,都给你】 🍅文末获取源码联系🍅 项目介绍 基于SpringBoot的语言课学习系统,java项…

Web开发伴侣 Prepros 7.17 Crack

您友好的 Web 开发伙伴&#xff0c;Prepros 编译您的文件、转译您的 JavaScript、重新加载您的浏览器并 使开发变得非常容易测试您的网站&#xff0c;以便您可以专注于制作 他们完美。 编译一切 Prepros 可以编译 Sass、Less、Stylus、Pug/Jade、Haml、Slim、CoffeeScript 和 …

linux中core调度器

背景 开始把core调度器当成了linux的主调度器&#xff0c;导致查找网上资料时总觉得对不上&#xff0c;最后从linux的rust文档中明白了&#xff0c;core调度器是为了解决超线程场景下缓存漏洞&#xff08;如mds、L1HF&#xff09;而存在的。简单来说就是一个cpu上同时运行两个…

翻译: 为什么需要微调大模型 Why Fine-tuning LLM

虽然RAG提供了一种方式来给大型语言模型提供额外的信息&#xff0c;但还有另一种叫做微调&#xff08;fine-tuning&#xff09;的技术&#xff0c;也是给它更多信息的一种方式。特别是&#xff0c;如果你有的上下文比大型语言模型的输入长度或上下文窗口长度更大&#xff0c;那…

如何使用ArcGIS Pro拼接影像

为了方便数据的存储和传输&#xff0c;我们在网上获取到的影像一般都是分块的&#xff0c;正式使用之前需要对这些影像进行拼接&#xff0c;这里为大家介绍一下ArcGIS Pro中拼接影像的方法&#xff0c;希望能对你有所帮助。 数据来源 本教程所使用的数据是从水经微图中下载的…