1.回顾与概览
2.什么是树型结构
3.树的(递归)定义与基本术语
3.1树的定义
注意:除了根结点以外,任何一个结点都有且仅有一个前驱
3.2树的其他表示方式
3.3树的基本术语
- 结点:数据元素以及指向子树的分支
- 根结点:非空树中 无前驱结点的结点(有且仅有一个)
- 结点的度:结点拥有的子树数
- 树的度:树内各结点的度的最大值
- 叶子结点(终端节点):度为0的结点
- 分支结点(非终端节点):度不为0的结点
- 内部结点:根结点以外的分支结点
- 孩子:结点的子树的根,为该结点的孩子
- 双亲:该结点称为孩子的双亲
- 兄弟:同一个双亲的孩子之间互称兄弟
- 祖先:从根结点到该结点所经分支上的所有结点
- 子孙:以某结点为根的子树中的任意结点,称为该结点的子孙
- 树的层次:从根结点开始定义,根结点为第一层
- 结点的层次:-----从上往下数
- 结点的高度:-----从下往上数
- 树的深度:树内结点的最大层次
- 两结点间的路径:只能从上往下数
- 路径长度:经过几层
- 堂兄弟:双亲在同一层的结点(注意双亲不同) 互为堂兄弟
-
有序树:树中结点的各子树从左至右有次序,且次序不能互换
-
无序树:树中结点的各子树无次序。
-
森林: m(m≥0)棵互不相交的树的集合。
3.4树结构与线性结构的比较
4.二叉树的定义与相关特性
4.1为什么我们要研究二叉树
(1)二叉树的结构最简单,规律性最强;
(2)可以证明,所有树都能转为唯一对应的二又树,不失一般性。
(3)普通树(多又树)若不转化为二叉树,则运算很难实现
二叉树在树结构的应用中起着非常重要的作用,因为对二又的许多操作算法简单,而任何树都可以与二叉树相互转换,这样就解决了树的存储结构及其运算中存在的复杂性。
4.2二叉树的定义
特点:
- 每个结点最多有俩孩子(二叉树中不存在度大于2 的结点)
- 子树有左右之分,其次序不能颠倒。
- 二叉树可以是空集合,根可以有空的左子树或空的右子树。
4.3二叉树与一般树的辨析
二叉树不是树的特殊情况,它们是两个概念
实例辨析:
4.4二叉树的5种基本形态
注意:树中的所有相关术语都适用于二叉树
5.树和二叉树的抽象数据类型定义
重点在二叉树:
比较重要的几个操作:注意(c语言中传入指针,而非引用)