树的定义
-
定义:树(Tree)是n(n>=0)个结点的有限集。
n=0时称为空树。 -
组成:
根节点root
:树的结点包含一个数据元素和若干指向其子树的分支。
叶子结点(Leaf)
/终端结点:无后继结点
。
分支结点
/非终端结点:有后继结点
。
边:连接分支结点
子树(SubTree)
:当n>1时,其余结点可分为m(m>0)个互不交互
的有限集T1、T2…Tm,其中每一个集合本身又是一棵树,并称为根的子树。 -
特点:在任意一颗非空树中
1.有且仅有一个
特定的称为根结点
;
2.除了根结点,任何
一个结点
都有且仅有一个前驱
3.每个结点可以有0个或多个后继结点
4.结点的子树
是互不相交
的
树形逻辑结构的应用
- 一个国家的省、市、区…
- 电脑文件系统:文件夹下的不同文件
- 思维导图
结点之间的关系描述
祖先结点
:从根结点到该结点所经过分支上的所有结点。子孙结点
:以某结点为根的子树中的任一结点都称为该节点的子孙。- 双亲结点(
父结点
):一个结点的直接前驱结点 孩子结点
:一个结点的直接后继结点兄弟结点
:同一个双亲的孩子结点之间互称兄弟结点。- 堂兄弟结点:同一层的非兄弟结点
- 路径:结点之间的路径只能从上到下
结点、树的属性描述
- 结点的层次(深度):从上往下数
- 结点的高度:从下往上数
结点的度
:有几个孩子(分支)- 树的高度(深度):总共有多少层。
树的度
:各结点的度的最大值
树的性质
- 结点总数=总度数+1
度为m的树
&m叉树
的区别
度为m的树 | m叉树 |
---|---|
各结点的度的最大值为m | 每个结点最多只能有m个孩子的树 |
任意结点的度<=m(最多有m个孩子) | 任意结点的度<=m(最多有m个孩子) |
至少有一个结点的度为m | 允许所有结点的度都<m |
一定是非空树,至少有m+1个结点 | 可以是空树 |
有序树 和 无序树
有序树
:树中结点的各子树从左至右是有次序
的,不能互换
无序树
:树中结点的各子树从左至右是无次序的
,可以互换