数据结构之树(四)——树与二叉树的转换

实现原理分析

  • 将树转化成二叉树进行处理,利用二叉树的算法来实现对树的操作。

  • 由于树和二叉树都可以用二叉链表作为存储结构,则以二叉链表作媒介可以导出树与二叉树之间的一个对应关系。
    在这里插入图片描述

  • 给定一棵树,可以找到唯一的一棵二叉树与之对应。

在实际操作中,把树转换成二叉链表,再接着转换成二叉树是比较繁琐的,这里,既然有二叉链表作为媒介,则它们的转换是有规律的。



树------>二叉树

  • 转换方法:
    • 1.加线 :在兄弟之间加一连线
    • 2.抹线:对每个结点,除了其左孩子外,去除其与其余孩子之间的关系
    • 3.旋转:以树的根结点为轴心,将整颗树顺时针转45°。

即,兄弟相连留长子

  • 转换过程: 对下图的树进行二叉树转换
    在这里插入图片描述
    • 1.兄弟结点之间要连线
      在这里插入图片描述
    • 2.只保留长子与根结点之间的连线,其他与根结点的连线全部抹去。
      在这里插入图片描述在这里插入图片描述
    • 3.以树的根结点(B,E,H)为中心,旋转45°,得到转换后的二叉树。 在这里插入图片描述



二叉树------>树

  • 转换方法:
    • 1.加线 :若p结点是双亲结点的左孩子,则将p的右孩子,右孩子的右孩子…沿分支找到的所有右孩子,都与p的双亲用线连起来。
    • 2.抹线:抹掉原二叉树中双亲与右孩子之间的连线
    • 3.调整:将结点按层次排列,形成树结构

即,左孩右右连双亲,去掉原来右孩线。

  • 转换过程: 对下图的二叉树进行树转换
    在这里插入图片描述
    • 1.与结点左孩子相连的右孩子,以及右孩子的右孩子等,与该结点相连。
      在这里插入图片描述
    • 2.将原来的右孩子线去掉。
      在这里插入图片描述
      在这里插入图片描述
    • 3.调整一下,形成树结构。
      在这里插入图片描述
  • 5
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值