树——树的结构、遍历以及树和森林,二叉树的相互转化

目录

 

树的存储结构

双亲表示法

孩子链表

特点

改进

孩子兄弟表示法

举例

树与二叉树的转换

简化

树—>二叉树

二叉树—>树

森林和二叉树的转换

森林—>二叉树

举例

二叉树—>森林

举例

树和森林的遍历

树的遍历(三种方式)

森林的遍历(两种方式)

先序遍历

中序遍历


树的存储结构

双亲表示法:

就比如说A,B,C的指针域都为0,表明其双亲的下标为0,即根节点R。

孩子链表:

如上图 A 的孩子是指向 3 和 5 位置的 D 和 E 。

特点:找孩子容易,找双亲难。

改进:将双亲表示法与孩子链表结合起来。

如:

如A,B,C的双亲为位于4位置的 R 。

这种还是为了操作方便而牺牲了空间,又多进行了存储。

孩子兄弟表示法:

举例

找双亲还是难,也可以像上述一样增设一个双亲指针域。

树与二叉树的转换

由于树和二叉树都可以用二叉链表作存储结构,则以二叉链表作媒介可以导出属于二叉树之间的一个对应关系。

举例

树是通过兄弟表示法来转化为二叉链表的。

如果每次转化都需要先转化为二叉链表再进行转化的话,显然很麻烦。

简化:

树—>二叉树

举例

二叉树—>树

举例:

森林和二叉树的转换

森林—>二叉树

举例:

二叉树—>森林

举例:

树和森林的遍历:

树的遍历(三种方式)

森林的遍历(两种方式)

先序遍历:

即:依次从左到右对森林中的每一棵树进行先序遍历。

中序遍历:

即:依次从左到右对森林中的每一棵树进行后序遍历。

举例:

发布了23 篇原创文章 · 获赞 30 · 访问量 8672

猜你喜欢

转载自blog.csdn.net/l218623/article/details/104288651