6.4.2 森林与二叉树的转换

本文详细介绍了树与二叉树之间的对应关系,以及如何将森林转换为二叉树和反之的过程。通过将树的根节点视为二叉树的左孩子,兄弟节点视为右孩子的连接,可以建立起两者之间的转换规则。同时,森林到二叉树的转化也遵循类似的原则,将森林中后续树的根节点视为前一棵树的右孩子。这些概念对于理解和操作树形数据结构至关重要。

1、树与二叉树的对应关系

  • 二叉树可以用二叉链表作为存储结构;
    树也可以使用二叉链表作为存储结构。
    一棵树和一个二叉树由此建立对应关系
    如下,
    在这里插入图片描述

  • 任意一颗和对应的二叉树,其右结点必定为空(因为树的根结点是没有兄弟结点的,其二叉链表根节点的右链域必为空)。

2、森林和二叉树的对应关系

  • 方法:
    把森林中的第二棵树的根结点第三棵树的根结点 … 都看作是第一棵树的根结点兄弟结点
    因此顺着第一棵树的根结点右链域依次排下去

  • 一个实例如下图
    在这里插入图片描述

3、森林或数 <----> 二叉树 (相互转化)

  1. 森林转换成二叉树( F2B )
    已知森林 F = { T1 , T2 , … , Tm } ,B = { ROOT,LB,RB }
    a. 若F为空,则m = 0 , B为空树。
    b. 若F非空 ,则m不为0B的根root即为F中 T1 的根结点 ROOT(T1);B的左子树 LB 是从 T1 根结点的子树森林F1 = { T11 , T12 , … , T1m } 转换而成的二叉树;B的右子树 RB 是从森林 F = { T2 , T3, … , Tm } 转换而成的二叉树。
  2. 二叉树转换成森林( B2F )
    已知 B = { ROOT,LB,RB },森林 F = { T1 , T2 , … , Tm }
    a. 若 B 为空,那么 F 为空
    b.若 B 非空,则 F 中第一棵树 T1 的根 ROOT(T1) 即为二叉树 B 的根 root;T1 的子树森林 F1 是由 LB 转化而来;而 T2,T3,… ,Tm 组成的森林是由 RB 转换而来。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值