目录
树型结构是一种非线性数据结构,是由有限个节点构成的具有层次关系的集合,它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。
树型结构具有以下特点:

树满足以下性质:
树的子树是不可相交的
在树中,除根节点外,每个节点有且仅有一个父节点
N个节点的树具有N-1条边
树有很多种表示方式,如:双亲表示法, 孩子表示法、孩子双亲表示法、孩子兄弟表示法
我们这里只介绍最常用的孩子兄弟表示法。
孩子兄弟表示法,即左孩子右兄弟表示法。
一个节点,只存储数据和其第一个孩子、第一个兄弟的引用。


二叉树由n个结点构成的有限集(n≥0),n=0时为空树,n>0时为非空树。
二叉树可以为空树。
二叉树是一种特殊的树,二叉树的特点是每个节点最多有两个子节点(也就是说二叉树的度最多为2),并且这两个子节点有明确的左右之分,不能颠倒。


两种特殊的二叉树:
注意:满二叉树是一种特殊的完全二叉树。

1. 若规定根结点的层数为1,则一棵非空二叉树的第i层上最多有 (i>0)个结点
2. 若规定只有根结点的二叉树的深度为1,则深度为K的二叉树的最大结点数是 (k>=0)
3. 对任何一棵二叉树, 如果其叶结点个数为 n0, 度为2的结点个数为n2,则有:n0=n2+1
4. 具有n个结点的完全二叉树的深度k为 上取整
5. 对于具有n个结点的完全二叉树,如果按照从上至下从左至右的顺序对所有节点从0开始编号,则对于序号为i 的结点有(存在的情况下):
6.节点个数 = 分支数+1(二叉树和树均适用)
7.对于完全二叉树,度为1的节点只有1个或0个
二叉树的存储结构分为:顺序存储和类似于链表的链式存储。
二叉树的链式存储是通过一个一个的节点引用起来的,常见的有孩子表示法、孩子双亲表示法。
孩子表示法:

孩子双亲表示法:

到这里,我们再来回顾下二叉树的概念:
二叉树是:
可以看出二叉树定义是递归式的。
遍历是指沿着某条搜索路线,依次对树中每个结点均做一次且仅做一次访问。访问结点所做的操作依赖于具体的应用问题(比如:打印节点内容、节点内容加 1)。


OK~本次博客到这里就结束了,
感谢大家的阅读~欢迎大家在评论区交流问题~
如果博客出现错误可以提在评论区~
创作不易,请大家多多支持~