树(1)什么是树

Published on with 0 views and 0 comments

前言

是数据结构中的重中之重,本系列文章将着重介绍二叉树、二叉搜索树、AVL 树、红黑树、哈夫曼树、B 树、B+ 树、树与森林。争取学完之后做到心中有"树"。

树的定义

树(Tree) 是 n(n>=0)个结点的有限集。n=0 时称为空树。

在任意一颗非空树中:

1)有且仅有一个特定的称为根(Root)的结点;
2)当 n>1 时,其余结点可分为 m(m>0)个互不相交的有限集 T1、T2、......、Tn,其中每一个集合本身又是一棵树,并且称为根的子树。

此外,树的定义还需要强调以下两点:

1)n>0 时根结点是唯一的,不可能存在多个根结点,数据结构中的树只能有一个根结点。
2)m>0 时,子树的个数没有限制,但它们一定是互不相交的。

一颗普通的树:
image202204061511165x4335m.png

由树的定义可以看出,树的定义使用了递归的方式。递归在树的学习过程中起着重要作用,如果对于递归不是十分了解,建议先看看递归算法

结点的度

结点拥有的子树数目称为结点的
image202204061512469wny2b2.png

结点关系

结点子树的根结点为该结点的 孩子结点 。相应该结点称为孩子结点的 双亲结点

如上图中,A 为 B 的双亲节点,B 为 A 的孩子节点。

同一个双亲结点的孩子结点之间互称 兄弟结点

如上图中,结点 B 与结点 C 互为兄弟结点。

结点层次

从根开始定义起,根为第一层,根的孩子为第二层,以此类推。
image20220406151531zifnfif.png

树的深度

树中结点的最大层次数称为树的深度或高度

本系列文章参考网址汇总:
https://www.cs.usfca.edu/~galles/visualization/RedBlack.html
https://www.yisu.com/zixun/612759.html
https://github.com/tclxspy/Articles/blob/06e64dcf4d75fd0fa5548d0a6322ce0d9889ba00/algorithm/Code/RedBlackBST.java#L403


标题:树(1)什么是树
作者:cuijianzhe
地址:https://cjzshilong.cn/articles/2022/04/08/1649398380957.html