树的基本概念和存储

与树相关的概念性质

:n(n>=0)个节点的有限集合,n=0为空树。
在任意一个非空树中,有且只有一个被称之为根节点的节点

n>1时,其余节点可分为m(m>0)个互不相交的有限集合 T1 . …Tm ,其中每一个集合本身又是一棵树,并称之为子树。

A为root节点即为根节点

节点:树是由有限个元素组成的集合,每人元素都称作一个节点

孩子:节点子树的根,相应,该节点称之为孩子的双亲,并且,同一双亲的孩子,互称之为兄弟。
如图所以,A的孩子为 B,C
B ,C的双亲为A,并且,B,C互称为兄弟

节点的度:一个节点含有的子树的个数称为该节点的度,例如图中的A节点度为2

叶子节点:度为0的节点 ,图中的C,D均是

树的度:树中的子树最大的度。图中的树的度为2

节点的深度:从根结点(深度为1)开始自顶向下逐层累加至该结点的深度值。
例如图中的节点D的深度为3。
树的深度:从根结点(深度为1)开始自顶向下逐层累加至叶子节点的深度值。
图中树的深度为3。
树的深度和高度值一样,只不过深度时自上而下,高度自下而上。

森林:多个树的集合。

树的层次: 从根节点算起,根节点为第一层,根节点的孩子为第二层 . . . . . . 下图中的 总共有三层

在这里插入图片描述

树的存储

树的存储有很多种方法,但其实大同小异,只是每一种方法都会有优劣之处。

双亲表示法

如图所示
按照DFS 将所有节点进行编号,
一个节点没有父节点,则表示为-1 如 根节点
其余节点的父节点就是其索引号。
这种表示方法缺点在于如果想要知道某个节点的孩子节点,只能遍历这个树结构
在这里插入图片描述

当然你也可以设计这样的结构:

在这里插入图片描述

孩子表示法

这个是数组和链表组合的方法,可以节省空间
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值