数据结构与算法_【6】树和森林(C++实现)

参考:数据结构与算法基础(青岛大学-王卓)
传送门:
数据结构与算法_【1】概念引入(C++实现)
数据结构与算法_【2】线性表(顺序表链表)(C++实现)
数据结构与算法_【3】栈和队列(C++实现)
数据结构与算法_【4】串数组广义表(C++实现)
数据结构与算法_【5】树和二叉树(C++实现)
数据结构与算法_【6】树和森林(C++实现)
数据结构与算法_【7】哈夫曼树(C++实现)
数据结构与算法_【8】图(C++实现)
数据结构与算法_【9】查找(C++实现)
数据结构与算法_【10】排序(C++实现)

树和森林

1 树的存储结构

(1)双亲表示法:定义结构数组存放树的结点,每个结点含两个域(数据域和双亲域)

在这里插入图片描述

(2)孩子链表

在这里插入图片描述在这里插入图片描述

(2)孩子兄弟表示法(二叉树表示法,二叉链表表示法相似)

在这里插入图片描述

2 树与二叉树的转换

将树转换为二叉树进行处理,利用二叉树的算法来实现对树的操作。
由于树和二叉树都可以用二叉链表作存储结构,则以二叉链表作媒介可以导出树与二叉树之间的一个对应关系。

树转换为二叉树:

在这里插入图片描述在这里插入图片描述

二叉树转化为树:

在这里插入图片描述在这里插入图片描述

3 森林与二叉树的转换

森林转换成二叉树:

在这里插入图片描述在这里插入图片描述

二叉树转换成森林:

在这里插入图片描述在这里插入图片描述

4 树和森林的遍历

4.1 树的遍历

(1)先根(次序)遍历:若树不空,则先访问根节点,然后依次先根遍历各棵子树
(2)后根(次序)遍历,若树不空,则依次后根遍历各棵子树,然后访问根节点
(3)按层次遍历,若树不空,则自上而下自左至右访问树中每个结点

4.2 森林的遍历

在这里插入图片描述

先序遍历:

在这里插入图片描述

中序遍历:

在这里插入图片描述

例子:

在这里插入图片描述

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值