Tree以及二叉树的相关概念知识
一、树的基本概念
树(Tree)是n(n>=0)个结点的有限集。当n=0时成为空树,在任意一棵非空树中:有且仅有一个特定的称为根(Root)的结点;当n>1时,其余结点可分为m(m>0)个互不相交的有限集T1、T2、...、Tm,其中每一个集合本身又是一棵树,并且称为根的子树(SubTree)。
树中节点的分类:
树中节点的关系:
二、二叉树
世上树有万千种,唯有二叉课上讲。这里的二叉是二叉树,因为二叉树使用的范围最广,最具有代表意义,因此不论教材还是考试都以二叉树为主。
二叉树(Binary Tree)是n(n>=0)个结点的有限集合,该集合或者为空集(空二叉树),或者由一个根结点和两棵互不相交的、分别称为根结点的左子树和右子树的二叉树组成。
这个定义显然是递归形式的,所以咱看上去有点晕,因为自古有“神使用递归,人使用迭代!“ 递归在树的相关操作中简直方便的不要不要!
二叉树的特点:
1、每个结点最多有两棵子树,所以二叉树中不存在度大于2的结点。(注意:不是都需要两棵子树,而是最多可以有两棵,没有子树或者有一棵子树也都是可以的。)
2、左子树和右子树是有顺序的,次序不能颠倒。
3、即使树中某结点只有一棵子树,也要区分它是左子树还是右子树。
满二叉树和完全二叉树
上图为满二叉树。
上图的3棵树均为完全二叉树。