6-4 树与二叉树的转换

将树转换成二叉树(树变二叉树:兄弟相连留长子。)

树转换成的二叉树其右子树一定为空。

1、加线:在兄弟之间加一连线  

2、抹线:对每个结点去除其与孩子之间的关系(第一孩子除外)

3、旋转:以树的根结点为轴心,顺时针转45°。

将二叉树转换成树

加线:若 p 结点是左孩子,则将 p 的右孩子、右孩子的右孩子、…沿分支找到的所有右孩子,都与 p 的双亲用线连起来。

抹线:抹掉原二叉树中双亲与右孩子之间的连线。  

调整:将结点按层次排列,形成树结构。

二叉树变树:左孩右右连双亲,去掉原来右孩线。

 

 将森林转换成二叉树

1.现将森林连接成树,然后将树变形,第一个孩子为左孩子,其余的为右子树

 

将森林转换成二叉树

1、将各棵树分别转换成二叉树。

2、将每棵二叉树的根结点用线相连。

3、以第一棵二叉树根结点为二叉树的根,再以根结点为轴心,顺时针旋转,构成二叉树型结构

 

森林变二叉树:树变二叉根相连。 

 将二叉树转换成森林

1. 抹线:将二叉树中根结点与其右孩子连线,及沿右分支搜索到的所有右孩子间连线全部抹掉,使之变成孤立的二叉树。

2. 还原:将孤立的二叉树还原成树。

二叉树变森林:去掉全部右孩线,孤立二叉再还原。

 

6.4.3  树与森林的遍历     

树的遍历(先根、后根、层次遍历)

森林的遍历

森林由三部分构成:

1、森林中第一棵树的根结点;

2.森林中第一棵树的子树森林;

3.森林中其它树构成的森林。

先序遍历:若森林不空,则访问森林中第一棵树的根结点;

即:依次从左至右对森林中的每一棵树进行先根遍历。

中序遍历:若森林不空,则中序遍历森林中第一棵树的子树森林;

即:依次从左至右对森林中的每一棵树进行后根遍历

先序遍历: A B C D E F G H I J

中序遍历: B C D A F E H J I G

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值