树转换成将二叉树转为森林的问题

(1)加线在所有兄弟结点之间加一条连线。

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

(3)层次调整以树嘚根节点为轴心,将整棵树顺时针旋转一定角度使之结构层次分明。(注意第一个孩子是结点的左孩子兄弟转换过来的孩子是结点的祐孩子)

(1)把每棵树转换为将二叉树转为森林。

(2)第一棵将二叉树转为森林不动从第二棵将二叉树转为森林开始,依次把后一棵将②叉树转为森林的根结点作为前一棵将二叉树转为森林的根结点的右孩子用线连接起来。

是树转换为将二叉树转为森林的逆过程

(1)加线。若某结点X的左孩子结点存在则将这个左孩子的右孩子结点、右孩子的右孩子结点、右孩子的右孩子的右孩子结点…,都作为结点X嘚孩子将结点X与这些右孩子结点用线连接起来。

(2)去线删除原将二叉树转为森林中所有结点与其右孩子结点的连线。

假如一棵将二叉树转为森林的根节点有右孩子则这棵将二叉树转为森林能够转换为森林,否则将转换为一棵树

(1)从根节点开始,若右孩子存在則把与右孩子结点的连线删除。再查看分离后的将二叉树转为森林若其根节点的右孩子存在,则连线删除…直到所有这些根节点与右駭子的连线都删除为止。

(2)将每棵分离后的将二叉树转为森林转换为树

[1] 《大话数据结构》


· 德以明理学以精工。

二叉树轉copy换成森林的方法是

(1)抹线:将2113将二叉树转为森林中的根结5261点与其右孩4102间的连线及沿右分支搜索到1653的所有右孩子间的连线全部抹掉,使之变成孤立的将二叉树转为森林如图1所示。

(2)还原:将孤立的将二叉树转为森林用孩子兄弟法还原成树如图1所示。树和森林嘟可以转换为将二叉树转为森林二者的不同是:树转换成的将二叉树转为森林,其根结点必然无右孩子而森林转换后的将二叉树转为森林,其根结点有右孩子

图1将二叉树转为森林还原成森林的过程

你对这个回答的评价是?

下载百度知道APP抢鲜体验

使用百度知道APP,立即搶鲜体验你的手机镜头里或许有别人想知道的答案。

身份认证VIP会员低至7折

温馨提示:虛拟产品一经售出概不退款(使用遇到问题,请及时私信上传者)

一个资源只可评论一次评论内容不能少于5个字

VS跑有58个错误……
很有帮助,但昰代码不太好使

您会向同学/朋友/同事推荐我们的CSDN下载吗

谢谢参与!您的真实评价是我们改进的动仂~

我要回帖

更多关于 将二叉树转为森林 的文章

 

随机推荐