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

原创 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(左右根)

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

相关文章推荐

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

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

树、二叉树、森林之间的转换方法

1.如何将一棵树转换成二叉树? 将树转换成二叉树: ① 加线:在各兄弟结点之间用虚线相连 ② 抹线:对每个结点,除了其左孩子外,去除其与其余孩子之间的关系 ③ 旋转:以树的根结点为轴心,将...

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

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

Java实现完全二叉树,实现非递归前序,中序,后序遍历

一、定义二叉树 二叉树可以保存在数组,
  • d1d_dd
  • d1d_dd
  • 2014年09月17日 20:24
  • 522

数据结构 二叉树的递归算法、前序、中序、后序遍历(c语言实现)

实验目的 1、掌握二叉树的表示与实现。 2、掌握二叉树的定义、创建、遍历等基本操作的实现。 3、熟悉求二叉树深度等递归算法的设计与实现。 实验内容 问题描述:已知二叉树t,分别采用顺序存储结...
  • catkint
  • catkint
  • 2015年12月18日 23:08
  • 4158

数据结构---二叉树的前序、中序、后序遍历的递归和非递归 实现(C++)

本文实现了对二叉树的递归遍历和非递归遍历,当然还包括了一些栈操作。 二叉树的遍历本质上就是出栈和入栈的过程 。遍历的递归方式简单又容易理解,但是效率始终是个问题。 非递归算法可以清楚地知道遍历的每...

数据结构-二叉树的前序、中序、后序遍历的递归和非递归实现

在leetcode刷题,很多地方会考察到二叉树的遍历。 深度优先遍历DFS和广度优先遍历BFS看这里【链接】 这篇总结一下前序、中序、后序遍历的实现,备忘。1.基础知识二叉树的定义如下:struc...

数据结构把顺序存储的二叉树转换成链式存储及前序,中序,后序遍历

代码如下: #include #include #include #include #define MAX 10 using namespace std; typedef struct nod...

[算法与数据结构] - No.7 二叉树建立及其前序、中序、后序遍历

什么叫树? 树的定义     树是由 n (n  0) 个结点的有限集合。如果 n = 0,称为空树; 如果 n = 1,则有且仅有一个特定的称之为根(Root)的结点,它只有直接后继,但没有直接前...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:数据结构----完全二叉树和满二叉树以及前序、中序、后序遍历
举报原因:
原因补充:

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