树、森林——树、森林与二叉树的转换(森林转换为二叉树)

一、森林定义

多棵互不相交的树,合在一起就是森林


二、森林转二叉树 三大步骤

每一棵树,单独转成二叉树规则:左孩子,右兄弟

第一棵树根不动第二棵树的根 → 作为第一棵树根的右孩子第三棵树的根 → 作为第二棵树根的右孩子依次向右串联

整理结构,就是森林对应的唯一二叉树


三、核心特点

森林转二叉树,根结点一定有右子树

二叉树根左子树:第一棵树

二叉树根右子树:剩下所有森林

对比:

一棵树 → 二叉树:根无右子树

一片森林 → 二叉树:根有右子树


四、遍历对应关系

森林先序遍历 = 对应二叉树 先序遍历

森林中序遍历 = 对应二叉树 中序遍历


五、逆向:二叉树转回森林

若树根有右孩子,说明原先是森林

顺着根的右链不断拆分

每一段分别还原成普通树


六、口诀

一树转二叉右为空多树相连右相通左挂孩子右挂兄根连根来排成龙

相关推荐
Msshu1231 小时前
2~5串锂电快充优选|XSP36 Type‑C升压/升降压快充管理芯片
数据结构·随机森林·贪心算法·排序算法·线性回归·启发式算法
动词ing4 小时前
【学习笔记】数据结构栈与队列(栈先进后出+队列先进先出+括号匹配+消消乐模型)
数据结构·笔记·学习
a187927218314 小时前
【算法】链表(二):链表上的双指针——变速、异链与定距,和一份路程账本
数据结构·算法·leetcode·链表·go·指针·环形链表
zcmodeltech5 小时前
火电厂模型能演示冷态启动和故障处理吗?——基于STM32与Modbus RTU的集控实训控制系统设计
数据结构·stm32·单片机·嵌入式硬件·能源
Doubbbbbbble云6 小时前
区间合并问题的常见算法模式与优化思路4
java·数据结构·算法
David猪大卫6 小时前
【C++修炼】哈希表的实现
数据结构·c++·笔记·学习·算法·哈希算法·散列表
linx2958 小时前
单元九 · 零基础路线图-第 7–9 周·类与 RAII
c语言·开发语言·数据结构·c++·嵌入式硬件·算法
布莱克6058 小时前
C++ 七大排序算法详解:选择、冒泡、插入、计数、堆、快速与归并排序
数据结构·c++·算法·排序算法
科学实验家9 小时前
最小生成树:Prim,kruskal
数据结构·c++·算法
小孩玩什么9 小时前
深入理解字符串匹配算法:BF算法,KMP算法
java·c语言·开发语言·数据结构·c++·算法