数据结构之树、二叉树、森林关系

本文内容:树的存储结构、树与二叉树的相互转换、树与森林的遍历


一、树的存储结构

1、双亲表示法

特点: 方便找parent,但是不方便找子节点
在这里插入图片描述

2、孩子表示法

特点:每个节点的孩子节点都可以轻松找到。如下图,采用邻接链表来实现了。
在这里插入图片描述

3、孩子兄弟表示法

结构:
在这里插入图片描述

示例:
在这里插入图片描述

总结

在这里插入图片描述


二、树、森林与二叉树的相互转换

1、树与二叉树转换

在这里插入图片描述
上面这个树转换为二叉树:
在这里插入图片描述
即将节点的左指针指向第一个孩子,右指针指向下一个兄弟节点,

在这里插入图片描述


2、森林转二叉树

给一个森林
在这里插入图片描述

先把森林里的每一颗树转成二叉树
在这里插入图片描述
我们把森林中每一棵树的根节点彼此视为兄弟节点在这里插入图片描述
再调整一下:
在这里插入图片描述

二叉树转森林就是上述过程的逆过程

总之,森林转二叉树,就是先把里面的每一颗树转二叉树,然后将彼此的根节点视为兄弟节点,串起来即可。


二、树和森林的遍历

1、树的遍历

只有三种:
在这里插入图片描述

先序遍历,不解释:
在这里插入图片描述
后序遍历:
在这里插入图片描述
为什么树的后根遍历序列和它转二叉树之后的中序遍历序列一样呢?
这里稍微做一下解释。
我们以图中的A节点为例子
在左边的树中:后跟遍历是先访问子节点D、E,然后访问A本身,最后再访问它的下一个兄弟节点B;
而在右边,它对应的二叉树中,中序遍历是先访问A的左子树D、E;然后访问A本身,最后访问A的右孩子B。

因此,我们可以判断,树的后序遍历与它二叉树的中序遍历一样


2、森林的遍历

在这里插入图片描述
举例子,先序遍历:
在这里插入图片描述

中序遍历:
在这里插入图片描述
注意,森林的中序遍历是:森林中的每一棵树后根遍历组成的序列。


总结:

在这里插入图片描述
树具有后序遍历,森林具有中序遍历,别记混了。

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值