您的位置:首页 > 其它

(1.2.5.5)树 森林和二叉树的转换

2015-03-14 14:42 204 查看


一、树转换为二叉树
  树中每个结点最多只有一个最左边的孩子(长子)和一个右邻的兄弟。按照这种关系很自然地就能将树转换成相应的二叉树:

  ①左孩子仍为左孩子;

  ②右兄弟成为右孩子

  下面(a)图所示的树可转换为(c)图所示的二叉树。

  

  

  注意:由于树根没有兄弟,故树转化为二叉树后,二叉树的根结点的右子树必为空。
1.先根遍历

先根遍历的定义为:

(1)访问根结点;

(2)按照从左到右的顺序先根遍历根结点的每一棵子树。

2.后根遍历

后根遍历的定义为:

(1)按照从左到右的顺序后根遍历根结点的每一棵子树。

(2)访问根结点;

二、森林转换为二叉树

  具体方法是:

  ① 将森林中的每棵树变为二叉树

  ② 因为转换所得的二叉树的根结点的右子树均为空,故可将各二叉树的根结点视为兄弟从左至右连在一起,就形成了一棵二叉树。

  下图中,左边包含三棵树的森林可转换为右边的二叉树。

  



[b]1.前序遍历

前序遍历的定义为:

(1)访问森林中第一棵树的根结点;

(2)前序遍历第一棵树的根结点的子树;

(3)前序遍历去掉第一棵树后的子森林。

2.中序遍历

中序遍历的定义为:

(1)中序遍历第一棵树的根结点的子树;

(2)访问森林中第一棵树的根结点;

(3)中序遍历去掉第一棵树后的子森林。

[/b]

三、树和森林的遍历

树的先根遍历=所转换二叉树的先序遍历

树的后跟遍历=所转换二叉树的中序遍历

森林的遍历=所转换二叉树的遍历
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: