树的定义

是由n≥0个结点组成的有穷集合(不妨用符号D表示)以及结点之间关系组成的集合构成的结构。当n=0时,称该树为空树;在任何一棵非空的树中,有一个特殊的结点t∈D,称之为该树的根结点;其余结点D–{t}被分割成m>0个不相交的子集D1, D2, …,Dm,其中每一个子集Di又为一棵树,分别称之为t的子树(递归定义)。如下图:
在这里插入图片描述

注:上述不相交的意思是指一个结点不能同时拥有两个父节点;

树的特点(逻辑上的)

1、有且仅有一个结点没有前驱结点,该结点为树的根结点;
2、除了根结点外,每个结点有且仅有一个直接前驱结点;
3、包括根结点在内,每个结点可以有多个后继结点。

树的逻辑表示方法

1.文氏图表示法
使用集合以及集合之间的包含关系表示树,如下图:
在这里插入图片描述

2.凹入表示法
使用线段的伸缩表示树,如下图:
在这里插入图片描述

3.嵌套括号表示法(广义表表示法)
将树的根节点写在括号的左边,除根节点之外的其他节点写在括号中并用逗号间隔来描述树,如下图:
在这里插入图片描述

4.树形表示法
借助自然界中一棵倒置的树的形状来表示数据元素之间层次关系的方法。
在这里插入图片描述

基本术语

1.结点的度该结点拥有的子树的数目
2.树的度树中结点度的最大值
3.叶结点:度为0 的结点。
4.分支结点:度非0 的结点。
5.层次的定义:根结点为第一层,若某结点在第i 层,则其孩子结点(若存在)为第i+1层。
6.树的深度树中结点所处的最大层次数
在这里插入图片描述

7.树林(森林):m≥0 棵不相交的树组成的树的集合。
8.树的有序性:若树中结点的子树的相对位置不能随意改变, 则称该树为有序树,否则称该树为无序树
9.路径:对于树中任意两个结点di和dj,若在树中存在一个结点序列d1,d2, … di, …,dj,使得di是di+1的双亲(1≤i<j),则称该结点序列是从di到dj的一条路径。路径的长度为j-1

从根结点到树中其余结点均分别存在一条唯一路径;

10.祖先和子孙:若树中结点d到ds存在一条路径,则称d是ds的祖先,ds是d的子孙

一个结点的祖先是从根结点到该结点路径上所经过的所有结点;
而一个结点的子孙则是以该结点为根的子树上的所有其他结点;

树的性质

在这里插入图片描述

树的存储结构

树的存储结构依旧可以分为顺序存储结构链式存储结构两种,只是两种方式中链式存储结构居多存储结构的选取取决于要对树进行何种操作

无论采取何种存储结构,需要存储的信息有:
1、节点本身的数据信息;
2、节点之间存在的关系(分支);

一、多重链表结构

1、定长结点的多重链表结构
在这里插入图片描述

2、不定长结点的多重链表结构
在这里插入图片描述

二、三重链表结构

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不死鸟JGC

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值