树的定义:
1. 树是一种非线性的数据结构
2. 树是由n(n >= 0)个节点组成的有限集合
如果 n = 0, 称为空树
如果n > 0,则:
1. 有一个特定的称之为根(root)的节点,它只有直接后继,但没有直接前驱
2. 除根以外的其它结点划分为 m (m ≥ 0) 个 互不相交的有限集合T0, T1, …, Tm-1,每个集合又是一棵树, 并且称之为根的子树(subTree)
图示树的三种一般形式:a ->空树 b ->只有一个根节点的树 c ->多个节点的树
树家族中的概念:
1. 树的节点包含一个数据及若干指向子树的分支
2.节点拥有的子树称为节点的度
1> 度为0的节点称为叶节点
2> 度不为0的节点称为分支节点
3. 树的度定义为所有节点中的度的最大值
图示:
4. 节点的直接后继称为该节点的孩子,相应的,该节点称为孩子的双亲
5. 节点的孩子的孩子的。。。称为该节点的子孙,相应的,该节点称为子孙的祖先
6. 同一个双亲的孩子之间互称兄弟
图示:
7. 节点的层次,根为第一层,根的孩子为第2层。。。
8. 树中结点的最大层次称为树的深度或高度
9. 如果树中结点的各子树从左向右是有次序的,子树间不能呼唤位置,则称该树为有序树,否则为无序树
10. 森林是由n (n >= 0)棵互不相交的树组成的集合
图示:
最后先提前说下树的一些常用操作:
1. 创建树
2. 销毁树
3. 清空树
4. 插入结点
5. 删除结点
6. 获取接单
7. 获取根节点
8. 获取树的结点数
9. 获取树的高度
10. 获取树的度