二叉树概述

原创 2017年02月16日 16:19:46

1、什么是二叉树

二叉树跟树有区别,最大的一点就是:树的度没有限制,而二叉树最多则不能超过2个度

二叉树由结点组成,结点包含的链接可以为空( null)或者指向其他结点,在二叉树中,每个结点只能有一个父结点(只有根节点例外), 而且每个结点都只有左右两个链接,分别指向他们自己的左子节点和右子节点。

2、二叉树类型:

完全二叉树:若设二叉树的高度为h,除第 h 层外,其它各层 (1~h-1) 的结点数都达到最大个数,第h层有叶子结点, 并且叶子结点都是从左到右依次排布,这就是完全二叉树。

满二叉树:除最后一层无任何子节点外,每一层上的所有结点都有两个子结点(最后一层上的无子结点的结点为叶子结点)。也可以这样理解,除叶子结点外的所有结点均有两个子结点。节点数达到最大值。所有叶子结点必须在同一层上.

一颗树深度为h,最大层数为k,深度与最大层数相同,k=h;

  它的叶子数是: 2^h
  第k层的结点数是: 2^(k-1)
  总结点数是: 2^k-1 (2的k次方减一)
  总节点数一定是奇数。

平衡二叉树:平衡二叉树又被称为AVL树(区别于AVL算法),它是一棵二叉排序树,且具有以下性质:
它是一棵空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树。


满二叉树肯定是完全二叉树,完全二叉树不一定是满二叉树

3、二叉树的遍历:

前序遍历:根节点-左子树-右子树
中序遍历:左子树-根节点-右子树
后序遍历:左子树-右子树-根节点
按层遍历:从根节点到下,一层层的从左到右依次遍历
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

二叉树概述

  • 2014年05月23日 19:33
  • 1000KB
  • 下载

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

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

【郝斌数据结构自学笔记】75-78_链式二叉树遍历具体程序演示_5种常用排序概述和快速排序详细讲解_再次讨论什么是数据结构_再次讨论到底什么是泛型

75_树16_链式二叉树遍历具体程序演示 //程序执行有问题 #include #include   struct BTNode {          intdata;  ...

基于C写的平衡二叉树

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

二叉树的Morris遍历

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

二叉搜索树和红黑树概述以及模板实现(2)--红黑树

其实很多人会意识到,如果使用二叉搜索树,在数据不好的情况下,最后查找的效果会变成线性。例如数据 1 2 3 4 5 6 7,根为1,其他数据依次插入在右侧,最后变成一个线性结构,性能就会变差。如何改善...
  • hopeztm
  • hopeztm
  • 2012年01月04日 23:26
  • 985

生成平衡二叉树

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

二叉搜索树和红黑树概述以及模板实现(1)

最近研究了一下算法导论里面关于二叉搜索树和红黑树的一章,对于红黑树的内容虽然还没有完全消化吸收,写一篇blog算是对所有内容的一个复习和反思吧。 1. 二叉搜索树 二叉搜索树是一颗二叉树,要求对于...
  • hopeztm
  • hopeztm
  • 2012年01月04日 22:56
  • 960

二叉树的前序遍历

  • 2015年03月28日 21:37
  • 2KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:二叉树概述
举报原因:
原因补充:

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