1.树的定义
树:是一种数据结构,是由n(n>= 1)个有限结点组成一个具有层次关系的集合。它看起来像倒挂的树,根朝上,叶朝下。树是递归的。
根结点:没有父结点,只有子结点(0或多个);根结点是第一层。
结点的度:结点拥有的子树数;
树的度:树内各结点的度的最大值。
树的深度(高度):树中结点的最大层次。
如果结点的度不等于零,称非终端结点(分支结点);如果结点的度等于零,称终端结点(叶子结点)。根结点以外的分支结点称为内部结点。结点的子树的根称为该结点的孩子,该结点称为孩子的双亲。有共同双亲的结点称为兄弟结点;同一层上的结点称为堂兄弟,它们的双亲位于同一层次的。
有序树:树中结点各子树从左至右有次序。
无序树:树中结点各子树无次序。
森林:是m(m>=0)棵互不相交的树的集合。(树一定是森林,森林不一定是树).
2.二叉树的定义
二叉树是n(n>=0)个结点的有限集,或者由一个根结点及两棵互不相交的分别称作这个根的左子树和右子树的二叉树组成。
特点:每个结点最多有两个孩子;
子树有左右之分,次序不能颠倒;
二叉树可以是空集合,根可以有空的左子树或空的右子树。
3.二叉树和树的区别
二叉树结点的子树要区分左子树还是右子树;树当结点只有一个孩子的时候,无须区分它是左还是右的次序。(具有两个结点的二叉树有两种状态,具有两个结点的树只有一种状态).
4.二叉树的五种基本形态
(1)空二叉树 (2)根和空的左右子树 (3)根和左子树 (4)根和右子树 (5)根和左右子树
5.二叉树的遍历
前序遍历:根结点—>左子树(遵循前序遍历原则)—>右子树(遵循前序遍历原则)
中序遍历:左子树—>根结点—>右子树(同理)
后序遍历:左子树—>右子树—>根结点(同理)