二叉树的相关知识之前比较零碎的学习了一遍, 时间久了,对很多细节遗忘比较严重, 所以,详细总结一遍.
1. 树
1.1 结点概念
结点 是数据结构的基础, 是构成复制数据结构的基本单位.
1.2 树的概念
树是一种非线性的数据结构,它是由n(n>0)个有限节点组成的具有层次结构的数据集合.叫做树是因为看起来像一颗倒挂的树(根朝上,叶朝下).当结点个数n 为0时, 称为 空(NULL)树.
任意一颗非空树具有以下特点:
- 每个结点有0个或多个子结点;
- 没有父结点的结点称为根结点,有且仅有一个根结点
- 每一个非根结点只有一个父结点
- 节点的度:一个节点含有的子树的个数称为该节点的度; 如上图:1号结点度为2
- 叶节点或终端节点:度为0的节点称为叶节点; 如上图:3, 4, 5等节点为叶节点
- 非终端节点或分支节点:度不为0的节点; 如上图:1、2节点为分支节点
-双亲节点或父节点:若一个节点含有子节点,则这个节点称为其子节点的父节点; 如上图:2是4的父节点 - 孩子节点或子节点:一个节点含有的子树的根节点称为该节点的子节点; 如上图:4是2的孩子节点
- 兄弟节点:具有相同父节点的节点互称为兄弟节点; 如上图:4、5是兄弟节点
- 树的度:一棵树中,最大的节点的度称为树的度; 如上图:树的度为2
- 节点的层次:从根开始定义起,根为第1层,根的子节点为第2层,以此类推;
- 树的高度或深度:树中节点的最大层次; 如上图:树的高度为3
- 节点的祖先:从根到该节点所经分支上的所有节点;如上图:1是所有节点的祖先
注意
树与非树问题
上图所示都不是树.
- 子树是不相交的;
- 除了根结点外, 每个结点有且仅有一个父结点;
- 一颗N个结点的树有 N-1条边.