定义:树(Tree)是n(n>=0)个结点的有限集T,T为空时称为空树,
否则它满足如下两个条件:
(1)有且仅有一个特定的称为根(Root)的结点;
(2)其余的结点可分为m(m>=0)个互不相交的子集T1,T2,T3…Tm,其中每个子集又是一棵树,并称其为子树(Subtree)。
为什么有二叉树?
二叉树在树结构的应用中起着非常重要的作用,因为对二叉树的许多操作算法简单,而任何树都可以与二叉树 相互转换,这样就解决了树的存储结构及其运算中存在的复杂性。
什么是二叉树?
定义:二叉树是由n(n>=0)个结点的有限集合构成,此集合或者为空集,或者由一个根结点及两棵互不相交的左右子树组成,并且左右子树都是二叉树。这也是一个递归定义。
二查树不是树的特殊情况
它们是两个概念。二叉树结点的子树要区分左子树和右子树,即使只有一棵子树也要进行区分,说明它是左子树,还是右子树。这是二叉树与树的最主要的差别。
二叉树的遍历
假如以L、D、R分别表示遍历左子树、遍历根结点和遍历右子树,遍历整个二叉树则有DLR、LDR、LRD、DRL、RDL、RLD六种遍历方案。
若规定先左后右,则只有前三种情况,分别规定为:
DLR——先(根)序遍历
LDR——中(根)序遍历
LRD——后(根)序遍历
1、先序遍历二叉树的操作定义为:
(1)访问根结点;
(2)先序遍历左子树;
(3)先序遍历右子树。
2、中序遍历二叉树的操作定义为:
(1)中序遍历左子树;
(2)访问根结点;
(3)中序遍历右子树。
3、后序遍历二叉树的操作定义为:
(1)后序遍历左子树;
(2)后序遍历右子树;
(3)访问根结点。