二叉树、树、森林的相互转换

一.树、二叉树相互转换

  1.树转换成二叉树

  a).连线,用虚线连接所有兄弟节点。

  b).抹线,抹除所有节点除了与最左子节点连线外的所有连线。

  c).旋转,将虚线补成实线后以水平方向向下旋转45度。

如图:

 

 

  2.二叉树转换成树

  a).连线,若某节点a是双亲节点的左孩子,则将a节点的右孩子节点及沿着该右节点的右链的所有右孩子节点都与a的双亲节点虚线相连。

  b). 抹线,将原双亲节点的所有右孩子节点连线抹掉。

  c).整理,把虚线变成实线,把节点按层次整理好。

如图:

 

 

二.森林、二叉树相互转换

  1.森林转换成二叉树

  a).将各个树转换成对应的二叉树

  b).按森林图形中树的先后次序,依次将后边一棵二叉树作为前边一棵二叉树根结点的右子树。

如图:

 

 

  2.二叉树转换成森林

  a).抹线,将二叉树的根节点与其右节点即沿着改节点的右链的所有右节点连线抹除,形成多颗二叉树。

  b).将各个二叉树转换成一般树。

posted @ 2015-04-04 10:44  jobten  阅读(712)  评论(0编辑  收藏  举报