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

目录

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

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

相关文章

【setDS】牛客小白月赛83 E

登录—专业IT笔试面试备考平台_牛客网 题意 思路 首先,一个必要步骤是把它转化为两个序列,这样就变成了一个序列DS问题 我们的答案是一个位置 pos 后面还有多少位置和这个位置的颜色相同,考虑得到这个答案我们需要维护什么东西 我们只需要…

MongoDB 与 Python 的交互

文章目录 第1关:MongoDB 与 Python 的交互 第1关:MongoDB 与 Python 的交互 编程要求 根据提示,在右侧编辑器 Begin-End 处补充代码,完成右侧程序。 测试说明 点击评测,平台会对你编写的代码进行测试。 import pymo…

AI日报:OpenAI向新用户重新开放ChatGPT Plus订阅

欢迎订阅专栏 《AI日报》 获取人工智能邻域最新资讯 文章目录 总览Chatgptplus重新开放订阅#暂停原因功能 OpenAI的1000万美元安全人工智能拨款拨款初衷学术捐赠 总览 ChatGPT Plus再次向新用户开放,但目前每三小时限制发送40条消息。 OpenAI还宣布拨款1000万美元…

【Hive】——DDL(TABLE)

1 查询指定表的元数据信息 如果指定了EXTENDED关键字,则它将以Thrift序列化形式显示表的所有元数据。 如果指定了FORMATTED关键字,则它将以表格格式显示元数据。 describe formatted student;2 删除表 如果已配置垃圾桶且未指定PURGE&…

ToolLLM model 以及LangChain AutoGPT Xagent在调用外部工具Tools的表现对比浅析

文章主要谈及主流ToolLLM 以及高口碑Agent 在调用Tools上的一些对比,框架先上,内容会不断丰富与更新。 第一部分,ToolLLM model 先来说主打Function Call 的大模型们 OpenAI GPT 宇宙第一LLM,它的functionCall都知道&#xff0…

恒创:更换服务器,网站备案会掉吗

随着互联网的普及,越来越多的企业和个人选择通过网站来展示自己的形象和业务。然而,在网站建设和运营过程中,更换服务器是一个常见的问题。那么,更换服务器后,网站备案是否会受到影响呢? 网站备案是为了保…

前端开发中的单元测试(unit testing)和端到端测试(end-to-end testing)

聚沙成塔每天进步一点点 ⭐ 专栏简介 前端入门之旅:探索Web开发的奇妙世界 欢迎来到前端入门之旅!感兴趣的可以订阅本专栏哦!这个专栏是为那些对Web开发感兴趣、刚刚踏入前端领域的朋友们量身打造的。无论你是完全的新手还是有一些基础的开发…

重温经典struts1之文件上传

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 前言 今天来学习下,每个项目都会有的文件上传功能,看看struts是怎么实现的。 步骤 编写三个jsp页面,一个是跳转到文件上传页面&#xff…

2023.12.15 FineBI与kettle

1.结构化就是可以用schema描述的数据,就是结构化数据,能转为二维表格, 如CSV,Excel, 2.半结构化就是部分可以转换为二维表格,如JSON,XML 3.非结构化数据,就是完全无法用二维表格表示的数据,如Word文档,Mp4,图片,等文件. kettle的流程 新建转换-构建流图-配置组件-保存运行 使…

如何用 Cargo 管理 Rust 工程系列 乙

以下内容为本人的学习笔记,如需要转载,请声明原文链接 微信公众号「ENG八戒」https://mp.weixin.qq.com/s/__nvVZYti-G05QJHIp_f8Q 编译程序 这次我们用 cargo 来启动编译,cargo 提供了 build 指令来调度工具构建并输出软件。cargo build 只…

HTTP 414错误:请求URI过长,如何避免

在Web开发中,HTTP状态码是用于表示Web服务器响应的各种状态。其中,HTTP 414错误表示请求URI过长,这意味着客户端发送的请求URL超过了服务器所能处理的长度限制。 当请求的URI过长时,服务器可能无法正确处理请求,从而导…

一些好用的VSCode扩展

可以在扩展这里直接搜索需要的扩展,点击安装即可。 1.Chinese 中文扩展,就是说虽然咱们懂点英语,但还是中文看着方便 2.Auto Rename Tag 当你重命名一个HTML 标签时,会自动重命名与他配对的HTML 标签 当你选择h4这个标签时&…