【数据结构与算法分析】0基础带你学数据结构与算法分析10--树和森林

目录

树的其他实现方式

父结点表示法

孩子表示法

兄弟表示法

森林

森林转换成二叉树

二叉树转换成森林


其实作为树的最后一点内容并没有多少,主要探讨树、森林、二叉树的关系,以及在严蔚敏老师的数据结构中提到的其他有关树的一些实现方式。

树的其他实现方式

父结点表示法

如果我们将所有结点放入一个顺序存储中,以下标直接存取结点,并在结点中表示其父结点的下标

孩子表示法

我们对父结点表示法稍加修改,结点中不再存放其父结点的下标,而是改为所有子结点的下标

兄弟表示法

即上文提到的树的表示方法。回过头我们再观察其结构,很容易发现这其实就是一棵二叉树,其左子结点代表其下所有子结点,而右结点代表其兄弟结点

 

 

森林

由 m(m∈N) 棵互不相交的树的集合,称之为森林,即这些树没有公共 ancestor。我们可以将不同的树的根看作是 sibling,那么我们可以很轻松的将森林转换为一棵二叉树。

森林转换成二叉树

将各棵树分别转换成二叉树

将每棵树的根结点用线相连

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

 

 

二叉树转换成森林

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

还原:将孤立的二叉树还原成树(二叉树→树)

 

  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

凉云生烟

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

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

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

打赏作者

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

抵扣说明:

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

余额充值