【二叉树】

来源:互联网 发布:星星知多少钻石大陆 编辑:程序博客网 时间:2024/06/05 08:52

定义:树(Tree)n(n>=0)个结点的有限集TT为空时称为空树,

否则它满足如下两个条件:

(1)有且仅有一个特定的称为根(Root)的结点;

(2)其余的结点可分为m(m>=0)个互不相交的子集T1,T2,T3…Tm,其中每个子集又是一棵树,并称其为子树(Subtree)

为什么有二叉树?

二叉树在树结构的应用中起着非常重要的作用,因为对二叉树的许多操作算法简单,而任何树都可以与二叉树 相互转换,这样就解决了树的存储结构及其运算中存在的复杂性。

什么是二叉树?

定义:二叉树是由n(n>=0)个结点的有限集合构成,此集合或者为空集,或者由一个根结点及两棵互不相交的左右子树组成,并且左右子树都是二叉树。这也是一个递归定义。

二查树不是树的特殊情况

它们是两个概念。二叉树结点的子树要区分左子树和右子树,即使只有一棵子树也要进行区分,说明它是左子树,还是右子树。这是二叉树与树的最主要的差别。

二叉树的遍历

假如以LDR分别表示遍历左子树、遍历根结点和遍历右子树,遍历整个二叉树则有DLRLDRLRDDRLRDLRLD六种遍历方案。

若规定先左后右,则只有前三种情况,分别规定为:

DLR——先(根)序遍历

LDR——中(根)序遍历

LRD——后(根)序遍历

1、先序遍历二叉树的操作定义为:

1)访问根结点;

2)先序遍历左子树;

3)先序遍历右子树。

2、中序遍历二叉树的操作定义为:

1)中序遍历左子树;

2)访问根结点;

3)中序遍历右子树。

3、后序遍历二叉树的操作定义为:

1)后序遍历左子树;

2)后序遍历右子树;

3)访问根结点。

原创粉丝点击