树
基本概念:
- 官方定义:树是n(n>=0)个结点的有限集合,n=0时,为空树。在任意一棵非空树中应满足:
- 1)有且仅有一个特定的称为根的结点
- 2)当n>1时,其余结点可分为m(m>0)个互不相交的有限集合T1,T2,T3,....,Tm,其中每个集合本身又是一颗树,并且称为根结点的子树。
- 人话总结:
- 空树:结点数为0的树
- 非空树:
- 有且仅有一个根节点
- 没有后继的结点称为“叶子结点”(或终端结点)
- 有后继的结点称为“分支结点”(或非终端结点)
- 除了根结点外,任何一个结点都有且仅有一个前驱
- 每个结点可以有0个或多个后继
- 树是一种递归定义的数据结构
属性:
- 结点的层次(深度)————从上往下数
- 结点的高度————从下往上数
- 树的高度(深度)————总共多少层
- 结点的度————有几个孩子(分支)
- 树的度————各结点的度的最大值
有序树 VS 无序树
- 有序树:从逻辑上看,树中结点的各子树从左至右是有次序的,不能互换
- 无序树:从逻辑上看,树中结点的各子树从左至右是无次序的,可以互换
森林:是m(m>=0)颗互不相交的树的集合
eg: 全中国所有人家的家谱
一个总结图:
常见知识点:
- 结点数 = 总度数 + 1
- 度为 m 的树,m叉树的区别:
- 度为m的树第i层至多有m的i-1个结点(i>=1)
- m叉树第i层至多有m的i-1个结点(i>=1)
二叉树
基本概念
二叉树的五种状态:
满二叉树和完全二叉树:
二叉排序树:
平衡二叉树:
一个总结图:
存储结构
- 顺序存储:
- 链式存储: