数据结构笔记 十二:树

说明:本笔记依照《王道论坛-数据结构》视频内容整理。

一、基本概念

树是 n(n≥0) 个结点的有限集合,n=0 时,称为空树,这是一种特殊情况。在任意一棵非空树中应满足:

(1)有且仅有一个特定的称为根的结点

(2)当 n > 1时,其余结点可分为 m (m>0)个互不相交的有限集合T1、T2、……、Tm,其中每个集合本身又是一棵树,并且称为根节点的子树
数据结构笔记 十二:树_第1张图片
非空树特点

  • 有且仅有一个根结点
  • 没有后继的结点称为“叶子结点”(或终端结点)
  • 有后继的结点称为“分支结点”(或非终端结点)
  • 除根结点外,任何一个结点都有且仅有一个前驱
  • 每个结点可以有 0 个或多个后继

树是一种递归定义的数据结构

二、结点之间关系描述

祖先结点:从一个结点出发,一直向上走,一直走到根结点为止,所经过的所有结点都是祖先结点。

子孙结点:从一个结点出发所有的分支都属于子孙结点。

双亲结点:一个结点的直接前驱结点。

孩子结点:一个结点的直接后继结点。

兄弟结点:前驱结点为同一个结点的结点。

堂兄弟结点:前驱的前驱是同一个结点的结点。

两结点之间路径:根节点到一个结点(只能从上往下)。

路径长度:根结点到一个结点经过几条边。

三、结点、树的属性描述

结点层次(深度):从上往下数(默认从1开始)

结点高度:从上往下数

高度(深度):总共多少层

结点:有几个孩子(分支)

:各结点的度的最大值

四、有序树、无序树

有序树:逻辑上看,树中结点的各子树从左至右是有次序的,不能互换

无序树:逻辑上看,树中结点的各子树从左至右是五次序的,可以互换

五、树、森林

森林:由 m(m≥0)棵互不相交的集合

六、树的性质

  • 结点数 = 总度数 + 1

  • 度为 m 的树和 m 叉树的区别(树的度 - 各结点的度的最大值、m 叉树 - 每个结点最多只能有 m 个孩子的树)
    数据结构笔记 十二:树_第2张图片

七、树的存储结构

1、双亲表示法(顺序存储)

数据结构笔记 十二:树_第3张图片
数据结构笔记 十二:树_第4张图片

2、孩子表示法(顺序+链式存储)

数据结构笔记 十二:树_第5张图片

3、孩子兄弟表示法(链式存储)

数据结构笔记 十二:树_第6张图片

八、森林和树转换

数据结构笔记 十二:树_第7张图片
数据结构笔记 十二:树_第8张图片

你可能感兴趣的:(数据结构与算法,数据结构,算法)