二叉树

原创 2012年03月25日 19:33:18

一、平衡二叉树(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.。



满二叉树、完全二叉树、平衡二叉树、哈夫曼树

最近做各大公司的笔试题,发现二叉树这块考得还是比较多的。 在笔试中,我看到了一道选择题,问哈夫曼树是不是满二叉树、是不是完全二叉树?当时哪记得清,什么二叉树的概念全忘光了。。 下面特地做了总结。 ...
  • Jaster_wisdom
  • Jaster_wisdom
  • 2016年05月21日 22:16
  • 3633

【算法导论】决策树是满二叉树吗?

今天看《算法导论》第三版dibaz
  • u010787773
  • u010787773
  • 2014年08月13日 11:33
  • 1575

C语言实现二叉树的基本操作

我在前面的博客中讲解了链表、栈和队列,这些数据结构其实都是线性表,并且给出了详细的实现。从今天开始,我们将要来学习树,树作为一种数据结构我们经常会用到,作为起步和基础,我们先来实现二叉树,也就是每个节...
  • CHENYUFENG1991
  • CHENYUFENG1991
  • 2016年03月11日 21:45
  • 12986

c++实现二叉树的基本功能

  • 2017年11月05日 13:31
  • 1.77MB
  • 下载

基于C写的平衡二叉树

  • 2016年03月24日 16:18
  • 3KB
  • 下载

二叉树的Morris遍历

  • 2016年09月03日 18:23
  • 6.2MB
  • 下载

生成平衡二叉树

  • 2016年05月05日 21:31
  • 8KB
  • 下载

二叉树的非递归建立,前序、中序、后序遍历

  • 2017年07月17日 20:18
  • 5KB
  • 下载

二叉树的前序遍历

  • 2015年03月28日 21:37
  • 2KB
  • 下载

北京邮电大学 可视化的二叉树的构造

  • 2017年05月30日 14:32
  • 133KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:二叉树
举报原因:
原因补充:

(最多只允许输入30个字)