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

news2024/11/16 19:45:35

目录

  • 一、树转换成二叉树
    • 步骤一:加线——在兄弟之间加连线
    • 步骤二:抹线——除结点的左孩子外,去除其与其余孩子之间的关系
    • 步骤三:旋转——以树的根结点为轴心,将整树顺时针转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.coloradmin.cn/o/1314481.html

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

相关文章

MQ入门—centos 7安装RabbitMQ 安装

三:RabbitMQ 安装 1.环境准备 Linux 的 CentOS 7.x 版本。Xftp 传输安装包到 Linux。Xshell 连接 Linux,进行解压安装。 RabbitMQ安装包 链接:https://pan.baidu.com/s/1ZYVI4YZlvMrj458jakla9A 提取码:dyto xshell安装包 链接&…

053:vue工具--- 英文字母大小写在线转换

第047个 查看专栏目录: VUE ------ element UI 专栏目标 在vue和element UI联合技术栈的操控下,本专栏提供行之有效的源代码示例和信息点介绍,做到灵活运用。 (1)提供vue2的一些基本操作:安装、引用,模板使…

拼多多买家页面批量导出订单excel

拼多多买家页面批量导出订单excel 由于拼多多不支持订单导出excel清算起来很麻烦,就自己写了一个页面批量导出脚本代码。 首先打开拼多多手机端网站:https://mobile.pinduoduo.com/ 登录后点击我的订单打开f12审查元素 在控制台引入jquery,引…

四十二、Redis

目录 一、简介 二、Redis基础 三、Redis的持久化 四、Redis主从、哨兵、分片集群安装 五、Redis主从 六、Redis哨兵 七、Redis分片集群 一、简介 Redis是一个内存中的数据结构存储系统,可以用作数据库、缓存和消息中间件。它的数据结构包括字符串、列表、集合…

BearPi Std 板从入门到放弃 - 先天神魂篇(7)(RT-Thread 定时器-硬件定时器)

简介 BearPi IOT开发板 硬件定时器使用步骤 创建项目 参考 BearPi RT-Thread项目创建 RT-Thread TIM2 设备注册 宏定义添加 rtconfig.h 中添加 #define RT_USING_HWTIMER #define BSP_USING_TIM #define BSP_USING_TIM2生成支持TIM2的mdk5项目工程 env 指令 scons --t…

图片转HTML-screenshot-to-code

Github地址 https://github.com/abi/screenshot-to-code 在线站 Screenshot to Code 简介 这是一个基于GPT4开发的一个工具站,它可以基于截图生成站点代码,生成速度快且准确。

jmeter,动态参数之随机数、随机日期

通过函数助手,执行以下配置: 执行后的结果树: 数据库中也成功添加了数据,对应字段是随机值:

make没有更新最新的uImage

在 LCD 驱动的时候发现,linux logo一直弄不出来,猜想可能是因为uImage的问题,就看了一眼 uImage 时间: ​ 我现在的时间是 ,那可能就是没有更新make的时候没有更新,就上网搜了一下用下面的命令输出 uImage&…

nodejs+vue+微信小程序+python+PHP的微博网络舆情分析系统-计算机毕业设计推荐

2.3.1 功能性分析 按照微博网络舆情分析系统的角色,我划分为了微博用户管理模块和管理员管理模块这三大部分。 微博用户管理模块:(1)用户登录:用户登录微博网络舆情分析系统 ;用户对个人信息的增删改查&…

Docker Swarm编排:构建简单集群

Docker Swarm 是 Docker 官方提供的容器编排工具,通过它可以轻松构建和管理多个 Docker 容器的集群。本文将深入探讨 Docker Swarm 的基础概念、构建集群的步骤,并提供更为丰富和实际的示例代码,帮助大家全面了解如何使用 Docker Swarm 搭建一…

直角三角形判断_分支结构 C语言xdoj56

问题描述 设直角三角形两条直角边长度为a和b,斜边长度为c,则a,b,c满足a^2b^2c^2, 输入三个整数a,b,c,判断对应的三角形是不是直角三角形,不是则输出“no”&#xff0…

Windows 11上边两个空格导致我多熬了1个多小时

将图中的文件路径复制,然后到文件管理器里边去搜索。 发现找不到,可是明明就在这里啊。 我百思不得其解,还以为是IDEA出了问题,我只能是重新启动项目,结果还是告诉我找不到文件。 要是同一个目录下已经有一个名为a…

C++执行系统命令的三种方式

C 执行系统命令可以使用以下几种方法: 1. 使用 system() 函数 system() 函数会调用操作系统的命令行处理器(如 /bin/sh)来执行命令。该函数的语法如下: int system(const char *command);其中,command 参数指定要执…

Gitee:远程仓库步骤

第一步:新建仓库 第二步:初始化本地仓库,git init 创建分支 git branch 新分支名 第三步:git add . :添加到暂存区 第四步:git config –global user.email关联邮箱,user.name用户名 第…

转载:TableView性能优化

转载:TableView性能优化 原文链接:https://juejin.cn/post/6955731915672387592 tableView性能优化 Cell重用、标识重用 使用 static 修饰重用标识名称能够保证这个标识只会创建一次,提高性能。接着调用dequeueReusableCellWithIdentifie…

Linux 使用 Anaconda+Uwsgi 部署 Django项目和前端项目

一、安装Anaconda 使用Anaconda创建python环境的优点: virtualenv只能创建系统原有的python版本,而不能创建创建任意版本的环境 而Anaconda的虚拟环境中,你可以指定任意现存可使用的python环境(包括比原环境版本高的python版本&a…

产品入门第五讲:Axure交互和情境

目录 一.Axure交互和情境的介绍 1.交互介绍 概念 常见的Axure交互设计技巧 2.情境介绍 概念 常见的Axure情境设计技巧: 二.实例展示 1.ERP登录页到主页的跳转 2.ERP的菜单跳转到各个页面 📚📚 🏅我是默,一个…

String类的hashCode()方法源码分析

Object类中的hashCode()方法: 同一个对象,hashCode必须相同;如果两个对象的equals相等,那么hashCode也必须要相等!hashCode()方法是native本地方法,是C代码,hashCode的值,不一定是…

Web开发伴侣 Prepros 7.17 Crack

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

Linux 虚拟机复制后如何彻底修改ip共存

Linux那些事儿 1、复制 2、连接 3、cd /etc/sysconfig/network-scripts/ 4、ls -a 5、vi ifcfg-eth0 6、i 7、修改mac地址和ip地址,记住修改后的mac(重要) 8、关机 9、打开虚拟机设置此镜像: