数据结构----完全二叉树和满二叉树以及前序、中序、后序遍历
来源:互联网 发布:淘宝店铺改域名 编辑:程序博客网 时间:2024/06/04 01:30
一) 满二叉树和完全二叉树
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 0
- 数据结构----完全二叉树和满二叉树以及前序、中序、后序遍历
- 完全二叉树/ 满二叉树/二叉树遍历(前序、中序、后序、层序遍历)
- C++数据结构--二叉树的建立,前序遍历,中序遍历和后序遍历
- java编写二叉树以及前序遍历、中序遍历和后序遍历
- java编写二叉树以及前序遍历、中序遍历和后序遍历
- 二叉树以及前序遍历、中序遍历和后序遍历
- 完全二叉树的前序遍历,中序遍历,后序遍历
- 给出中序和后序遍历,构造二叉树以及给出前序和中序构造二叉树
- 【数据结构】二叉树结点插入和前序、中序、后序遍历的递归实现
- 数据结构:二叉树的前序,中序,后序遍历(递归和非递归)
- 数据结构之线索二叉树的前序,中序和后序遍历
- C++数据结构--二叉树的前序遍历,中序遍历,后序遍历
- 创建二叉树以及 前序、中序、后序遍历二叉树
- 二叉树的前序遍历,中序遍历,后序遍历以及相互之间的求法
- 二叉树的建立以及前序遍历、中序遍历、后序遍历
- 根据前序遍历和中序遍历构建二叉树以及根据中序遍历后序遍历构建二叉树
- 通过前序遍历和中序遍历重建二叉树以及输出后序遍历(Java实现)
- 二叉树的遍历:前序遍历、中序遍历和后序遍历
- 打开Word提示向程序发送命令时出现问题怎么办?
- Leetcode no. 303
- 培训行业
- 动态存储分配及深复制 —我的数组类
- elastic资料整理
- 数据结构----完全二叉树和满二叉树以及前序、中序、后序遍历
- 使用ThinkPHP框架快速搭建网站(通俗易懂)
- Java 实现导出excel表 POI
- 语义化标签
- 树-Path Sum II(指定和,求根到叶子的路径)
- leetcode笔记—生成最大的 数组Create Maximum Number
- 函数式编程
- java设计模式-组合模式
- Android Home按键的监听与屏蔽方式