树的基本概念
树(Tree)是由一个或多个结点组成的有限集合T,其中有一个特定的称为根的结点;其余结点可分为m(m≥0)个互不相交的有限集T1,T2,T3 ,…,Tm,每一个集合本身又是一棵树,且称为根的子树。
结点(Node):树中的元素,包含数据项及若干指向其子树的分支。
结点的度(Degree):所有结点当中,子树分支最最多的就是树的度
结点的层次:从根结点开始算起,根为第一层,
叶子(Leaf):度为零的结点,也称端结点。
孩子(Child):结点子树的根称为该结点的孩子结点。
双亲(Parent):孩子结点的上层结点,称为这些结点的双亲。
兄弟(Sibling):同一双亲的孩子。
深度(Depth): 树中结点的最大层次数
森林(Forest):互不相交的树的集合
一般树与二叉树的区别
树的结点个数至少为1,而二叉树的结点个数可以为0;
树的结点最大度数没有限制,而二叉树结点的最大度数为2;
树的结点无左、右之分,而二叉树的结点有左、右之分。
二叉树
二叉树是一种重要的树形结构,其结构定义为:二叉树是n(n≥0)个结点的有限集,它或为空树(n=0),或由一个根结点和两棵分别称为根的左子树和右子树的、互不相交的二叉树组成。
既不是满二叉树也不是完全二叉树,则为一般二叉树
二叉树的每个结点至多有二棵子树(不存在度大于2的结点),二叉树的子树有左右之分,次序不能颠倒。
1.在二叉树的第K层上,最多有 2(k-1) (K >= 1)个结点
2.深度为K的二叉树,最多有 2k - 1 个结点(K>=1)
3.对于任何一棵二叉树,如果其叶子结点的个数为K,度为2的结点数为M,则K=M+1
4.对于一棵有 n 个结点的完全二叉树的结点按层次进行编号(如上图,从第一层到第 (log 2n向下取整),每层从左到右),对任意结点 i (1<i<n),有:
如果i=1,则结点i无父结点,是二叉树的根,如果i>1,则父结点为 i/2 向下取整
如果2i>n,则结点