vlambda博客
学习文章列表

Tree以及二叉树的相关概念知识

一、树的基本概念

树(Tree)是n(n>=0)个结点的有限集。当n=0时成为空树,在任意一棵非空树中:有且仅有一个特定的称为根(Root)的结点;当n>1时,其余结点可分为m(m>0)个互不相交的有限集T1、T2、...、Tm,其中每一个集合本身又是一棵树,并且称为根的子树(SubTree)。


树中节点的分类:

Tree以及二叉树的相关概念知识


树中节点的关系:

Tree以及二叉树的相关概念知识


二、二叉树

世上树有万千种,唯有二叉课上讲。这里的二叉是二叉树,因为二叉树使用的范围最广,最具有代表意义,因此不论教材还是考试都以二叉树为主。


二叉树(Binary Tree)是n(n>=0)个结点的有限集合,该集合或者为空集(空二叉树),或者由一个根结点和两棵互不相交的、分别称为根结点的左子树和右子树的二叉树组成。


这个定义显然是递归形式的,所以咱看上去有点晕,因为自古有“神使用递归,人使用迭代!“ 递归在树的相关操作中简直方便的不要不要!


二叉树的特点:

1、每个结点最多有两棵子树,所以二叉树中不存在度大于2的结点。(注意:不是都需要两棵子树,而是最多可以有两棵,没有子树或者有一棵子树也都是可以的。)

2、左子树和右子树是有顺序的,次序不能颠倒。

3、即使树中某结点只有一棵子树,也要区分它是左子树还是右子树。


满二叉树和完全二叉树


上图为满二叉树。


上图的3棵树均为完全二叉树。