树、森林和二叉树的转换

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

  1. 文氏图表示方法

  1. 括号表示法

  1. 凹入表示法

  • 森林与树

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

  • 树转化为二叉树

方法:

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

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

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

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

图示:

 

  • 森林转换为二叉树

方法:

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

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

图示:


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

  • 二叉树还原为树或森林

方法:

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

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

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


添边的结构是:


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

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

posted @ 2013-05-31 22:57  he_qiao_2010  阅读(243)  评论(0)    收藏  举报