树、森林和二叉树的转换

    • 树的逻辑表示方法
    1. 树型表示法

      1. 文氏图表示方法

        1. 括号表示法

          1. 凹入表示法

            • 森林与树

            森林(forest)是零棵或多棵不相交的树的集合(通常是有序集合)。

            • 树转化为二叉树

            方法:

            (1)在所有相邻兄弟结点之间加一水平连线。

            (2)对每个非叶结点k,除了其最左边的孩子结点外,删去k与其他孩子结点的连线。

            (3)所有水平线段以左边结点为轴心顺时针旋转45度,使之结构层次分明。

            树做这样的转换所构成的二叉树是唯一的。

            图示:

             

            • 森林转换为二叉树

            方法:

            (1)将森林中的每棵树转换成相应的二叉树。

            (2)第一棵二叉树不动,从第二棵二叉树开始,依次把后一棵二叉树的根结点作为前一棵二叉树根结点的右孩子, 当所有二叉树连在一起后,所得到的二叉树就是由森林转换得到的二叉树。

            图示:


            同样,得到的二叉树,也是唯一的。

            • 二叉树还原为树或森林

            方法:

            (1)若某结点是其双亲的左孩子,则把该结点的右孩子、 右孩子的右孩子……都与该结点的双亲结点用线连起来。

            (2)删掉原二叉树中所有双亲结点与右孩子结点的连线。

            (3)整理由(1)、(2)两步所得到的树或森林, 使之结构层次分明。


            添边的结构是:


            删除的是各个节点到右子节点的边。

            实际上从二叉树转化为树或森林和从树或森林到二叉树的转换是可逆的。

          评论
          添加红包

          请填写红包祝福语或标题

          红包个数最小为10个

          红包金额最低5元

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

          抵扣说明:

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

          余额充值