树和森林转化为二叉树及树和森林的遍历

一、树转化为二叉树:

加线——树中所有相邻兄弟之间加一条连线。·

(2)去线——对树中的每个结点,只保留它与第一个孩子结点之间的连线,删去它与其它孩子结点之间的连线。

(3)层次调整——以根结点为轴心,将树顺时针转动一定的角度,使之层次分明。

第三点可以直接记为“左是孩子,右是兄弟”

例:

二、森林转化为二叉树:

(1)将森林中的每一棵树转化为二叉树;

(2)第一棵二叉树不动,从第二棵二叉树开始,依次把后一棵二叉树的根结点作为前一棵二叉树根节点的右孩子。

例:

三、二叉树转化为树和森林:

(1)加线——若某结点x是其双亲y左孩子,则把结点x的右孩子右孩子的右孩子……,都与结点y用线连起来;

(2)去线——删去原二叉树中所有的双亲结点右孩子结点的连线;

(3) 层次调整——整理由⑴、⑵两步所得到的树或森林,使之层次分明。

例:

四、树的遍历

先根(次序)遍历:

若树不空,则先访问根结点,然后依次先根遍历各棵子树。

后根(次序)遍历:

若树不空,则先依次后根遍历各棵子树,然后访问根结点。

五、森林的遍历

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

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

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

1.先序遍历:

若森林不空,则:

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

  先序遍历森林中第一棵树的子树森林;

  先序遍历森林中(除第一棵树之外)其余树构成的森林。

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

2.中序遍历:

若森林不空,则

  中序遍历森林中第一棵树的子树森林;

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

  中序遍历森林中(除第一棵树之外)其     余树构成的森林。

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

SweetCinderella

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值