一文教你了解树和森林

前言

这是我听老师讲课做的笔记。
作者:RodmaChen
关注我的csdn博客,更多数据结构与算法知识还在更新

一.树的存储结构

1.双亲表示法

解释:-1代表没有双亲

问题:找双亲简单,找孩子麻烦

2.孩子表示法

左边是顺序存储右边是链式存储(指针域指向孩子)

3.孩子兄弟表示法(重点)

(1)左指针指向该节点的第一个孩子

(2)右指针指向该节点的下一个兄弟

相当于就是将树转换成二叉树

二.树的遍历

在这里插入图片描述

  1. 先序遍历树若树T非空,则:
    ①先访问根结点
    ②然后依次先根遍历根的各子树;

先:ABCEFGD

  1. 后序遍历树若树非空,则:
    ①后根遍历根的各子树
    ②访问根结点

后:BEGFCDA

总结:树的先序和后序的序列跟它转换成二叉树后的先序和中序的序列是一样的

三.森林

1.定义

森林是棵或不相交的树的集合(通常是有序集合)。

2.森林与二叉树的转换

①将森林中的每棵树转换成相应的二叉树。

②第一棵二叉树不动,从第二棵二叉树开始,依次把后一棵二叉树的根结点作为前一棵二叉树根结点的右孩子, 当所有二叉树连在一起后,所得到的二叉树就是由森林转换得到的二叉树。

在这里插入图片描述

3.森林的遍历

(1) 先序遍历

若森林非空,则可按下述规则遍历之:

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

②先序遍历第一棵树中根结点的子树森林

③先序遍历除去第一棵树之后剩余的树构成的森林。

如上图:ABCDEFGHIJ

(2)后序遍历

若森林非空,则可按下述规则遍历之:

①后序遍历森林中第一棵树的根结点的子树森林;

②访问第一棵树的根结点;

③后序遍历除去第一棵树之后剩余的树构成的森林。

如上图:BCDAFEHJIG

注意:

① 先序遍历森林等同于先序遍历该森林对应的二叉树

② 后序遍历森林等同于中序遍历该森林对应的二叉树

四.边学边练

在这里插入图片描述

作者:RodmaChen
本人博客:https://blog.csdn.net/weixin_46654114
本人b站求关注:https://space.bilibili.com/391105864
转载说明:跟我说明,务必注明来源,附带本人博客连接。

请给我点个赞鼓励我吧
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_46654114/article/details/106713723