数据结构----完全二叉树和满二叉树以及前序、中序、后序遍历

原创 2016年05月25日 20:50:35

一) 满二叉树和完全二叉树
1.满二叉树定义:

又叫Full Binary Tree. 除最后一层无任何子节点外,每一层上的所有结点都有两个子结点(最后一层上的无子结点的结点为叶子结点)。也可以这样理解,除叶子结点外的所有结点均有两个子结点。节点数达到最大值。所有叶子结点必须在同一层上。
如图:
这里写图片描述

2.完全二叉树定义:

完全二叉树(Complete Binary Tree)
若设二叉树的深度为h,除第 h 层外,其它各层 (1~h-1) 的结点数都达到最大个数,第 h 层所有的结点都连续集中在最左边,这就是完全二叉树。

这里可以看到第2层所有的节点都集中在了最左边!!!!!!
这里写图片描述

完全二叉树是由满二叉树而引出来的。对于深度为K的,有n个结点的二叉树,当且仅当其每一个结点都与深度为K的满二叉树中编号从1至n的结点一一对应时称之为完全二叉树。

注意:
一棵二叉树至多只有最下面的一层上的结点的度数可以小于2,并且最下层上的结点都集中在该层最左边的若干位置上,则此二叉树成为完全二叉树。

二)前序、中序、后序遍历

前序遍历:

遍历的顺序是:根节点-左节点-右节点
这里写图片描述

中序遍历:

遍历的顺序是:左节点-根节点-右节点
这里写图片描述

后序遍历:

遍历的顺序是:左节点-右节点-根节点
这里写图片描述

例子:

这里写图片描述

前序遍历法:123456789(根左右)

中序遍历法:325461879(左根右)

后序遍历法:356428971(左右根)

补充两个例子:

这里写图片描述
前序124536 (根左右)

中序425136(左根右)

后序452631(左右根)

这里写图片描述
前序12469735810(根左右)

中序26947135108(左根右)

后序96742108531(左右根)

版权声明:本文为博主原创文章,未经博主允许不得转载。

二叉树的遍历及其用途

最近在看《大话数据结构》这本书,看到了很早以前学习的前中后遍历,想到了面试的时候被问到了这三种遍历的用途,特地整理一下。首先就要先说前中后遍历 这个东西网上百度一大堆,而且都很简单,其实就是一个口...
  • qq_31929931
  • qq_31929931
  • 2017年08月16日 17:04
  • 613

关于二叉树的几种遍历方法

先说说二叉树的存储结构,跟很多其它模型一样,也有顺序和链式两种方式。前者虽然使用简单,但是存在浪费空间的问题,举个例子,下图的二叉树,用顺序的方式存储(0表示空,没有子树)是: 二叉树就是每个结点最...
  • pony_maggie
  • pony_maggie
  • 2014年08月05日 20:57
  • 191921

数据结构面试题/判断一棵树是否是完全二叉树

二叉树: 1.满二叉树:在一棵二叉树中,如果所有分支节点都存在左子树和右子树,并且所有叶子节点都在同一层上。 2.完全二叉树:如果一棵具有N个结点的二叉树的结构与满二叉树的前N个结点的结构相同,称...
  • s25691011
  • s25691011
  • 2017年07月29日 20:09
  • 702

数据结构之满二叉树和完全二叉树的区别

二叉树分类很多,其中满二叉树和完全二叉树比较特殊,因为这两种二叉树效率很高,这里记录几条相关性质。   首先是满二叉树:从形象上来说满二叉树是一个绝对的三角形,也就是说它的最后一层全部是叶子节点,其余...
  • zkn_CS_DN_2013
  • zkn_CS_DN_2013
  • 2015年08月27日 18:53
  • 1792

数据结构学习之二叉树(理论篇)

注:本文的主要目的是为了记录自己的学习过程,也方便与大家做交流。转载请注明来自: http://blog.csdn.net/ab198604         一、什么是树?         ...
  • ab198604
  • ab198604
  • 2013年01月16日 08:51
  • 19013

看懂二叉树的三种遍历

二叉树的遍历分为以下三种: 先序遍历:遍历顺序规则为【根左右】 中序遍历:遍历顺序规则为【左根右】 后序遍历:遍历顺序规则为【左右根】 什么是【根左右】?就是先遍历根,再遍历左孩子,最后遍历右...
  • soundwave_
  • soundwave_
  • 2016年11月10日 21:08
  • 13922

重温数据结构:二叉树的常见方法及三种遍历方式 Java 实现

读完本文你将了解到: 什么是二叉树 Binary Tree 两种特殊的二叉树 满二叉树 完全二叉树 满二叉树 和 完全二叉树 的对比图 二叉树的实现 用 递归节点实现法左右链表示法 表示一个二叉树节点...
  • u011240877
  • u011240877
  • 2016年11月17日 02:03
  • 7687

【数据结构】二叉树的后序遍历

后序遍历的递归实现与先序和中序遍历类似,而非递归实现较为复杂,下面会进行详细说明。 如图二叉树,其后序遍历结果为:8 4 5 2 9 10 6 7 3 1Talk is cheap, show ...
  • wait_nothing_alone
  • wait_nothing_alone
  • 2017年03月22日 22:26
  • 274

数据结构与算法——二叉树的前序遍历,中序遍历,后序遍历

数据结构与算法——二叉树的前序遍历,中序遍历,后序遍历
  • Linux_ever
  • Linux_ever
  • 2016年01月22日 11:42
  • 2059

数据结构 树后序遍历

  • 2008年12月14日 13:54
  • 94KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:数据结构----完全二叉树和满二叉树以及前序、中序、后序遍历
举报原因:
原因补充:

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