Code前端首页关于Code前端联系我们

二叉树(树)与森林的相互转换

terry 2年前 (2023-09-27) 阅读数 66 #数据结构与算法

1。什么是森林

森林,顾名思义,是由很多树组成的一组数据结构。这些树本身没有任何联系。系统语言的描述是: 森林:m(>=0)棵相互分离的树的集合【注意,一个森林可以有0棵树,相当于数学中的空集】

如果一棵树被认为是一个独立的点,那么森林就是点的集合。 ? ,除第一个孩子外,去掉它与其他孩子之间的连接线

旋转:以树的根节点为轴,将整棵树顺时针旋转45°

如图:

二叉树(树)与森林的相互转换

注意:树转换为二叉树时,右子树必须为空

3。当二叉树转换为树时

添加以下行: 如果节点 p 是父节点的左子节点,则 p 的右子节点和右子节点 p 的右子节点,...找到所有右子节点沿着分支与父节点相连 p

删除:删除原二叉树中父节点与右子节点之间的链接

调整:替换节点 点击分层排列,形成树形结构

,如图图片:

二叉树(树)与森林的相互转换

4.将森林转换为二叉树

将每棵树转换为二叉树

使用一条线作为每棵树的根节点 相关

将树的第一个根节点作为二叉树的根,并然后以根节点为轴,顺时针旋转光标,形成二叉树结构

,如图:

二叉树(树)与森林的相互转换

5。二叉树变换 创建森林

删除:删除二叉树中根节点与其右子节点之间的链接以及沿右分支搜索到的右子节点之间的所有链接,将其变成孤立的二叉树

重建:孤立树变换二叉树缩减为一棵树(二叉树→树)

如图:

二叉树(树)与森林的相互转换

版权声明

本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。

热门