二叉树

一、平衡二叉树(Balanced Binary Tree):

       它是一 棵空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树。如图:

     


二、二叉排序树(Binary Sort Tree): 又称二叉查找树

         它或者是一棵空树;或者是具有下列性质的二叉树: (1)若左子树不空,则左子树上所有结点的值均小于它的根结点的值; (2)若右子树不空,则右子树上所有结点的值均大于它的根结点的值; (3)左、右子树也分别为二叉排序树;如图:

       


三、二叉树的遍历:

        所谓遍历(Traversal)是指沿着某条搜索路线,依次对树中每个结点均做一次且仅做一次访问。访问结点所做的操作依赖于具体的应用问 题。 遍历是二叉树上最重要的运算之一,是二叉树上进行其它运算之基础。如图:

      

遍历方案

  从二叉树的递归定义可知,一棵非空的二叉树由根结点及左、右子树这三个基本部分组成。因此,在任一给定结点上,可以按某种次序执行三个操作:  

(1)访问结点本身(N),  

(2)遍历该结点的左子树(L),  

(3)遍历该结点的右子树(R)。  

以上三种操作有六种执行次序:  NLR、LNR、LRN、NRL、RNL、RLN。  

注意:  前三种次序与后三种次序对称,故只讨论先左后右的前三种次序。


遍历算法(参考上图)

① NLR:前序遍历(PreorderTraversal, 或称先序遍历, 或称先根遍历:ABCDEFGHIJ。

若二叉树非空,则依次执行如下操作:  (1)遍历左子树;  (2)访问根结点;  (3)遍历右子树。

② LNR:中序遍历(InorderTraversal),或称中根遍历:BCDAFEHJIG。

③ LRN:后序遍历(PostorderTraversal),或称后根遍历:DCBFJIHGEA.。



阅读更多
文章标签: traversal tree 算法
个人分类: 数据结构
上一篇
下一篇C++的多态性实现机制剖析
想对作者说点什么? 我来说一句

二 叉 树 . doc

2009年08月09日 43KB 下载

二叉树(各种基本算法)

2010年11月29日 300KB 下载

二叉树---数据结构

2010年10月29日 3KB 下载

树和二叉树

2011年10月13日 295KB 下载

数据结构二叉树的实验()

2011年07月18日 1KB 下载

二叉树的先序中序后序遍历

2011年05月03日 1.81MB 下载

二叉树高度

2017年12月14日 4KB 下载

二叉树的线索化 C++代码

2010年04月23日 1KB 下载

没有更多推荐了,返回首页

关闭
关闭