第6章 树---二叉树

Posted 影_魔

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第6章 树---二叉树相关的知识,希望对你有一定的参考价值。


二叉树(Binary Tree)是n(n>=0)个结点的有限集合,该集合或者为空集(称为空二叉树),或者由一个根结点和两颗互不相交的、分别称为根结点的左子树和右子树的二叉树组成。


二叉树的特点:
技术分享
 二叉树具有五种基本形态:
# 空二叉树。
# 只有一个根结点。
# 根结点只有左子树。
# 根结点只有又子树。
# 根结点既有左子树又有右子树。
 
三个结点的二叉树有五种形态:
技术分享
特殊的二叉树
# 斜树:所有的结点都只有左子树的二叉树叫左斜树。所有结点都是只有右子树的二叉树叫右斜树。这两者统称为斜树。
# 满二叉树:在一棵二叉树中,如果所有分支结点都存在左子树和右子树,并且所有叶子都在同一层上,这样的二叉树称为满二叉树。
技术分享
满二叉树的特点有:
 
技术分享
 
# 完全二叉树:对一棵具有n个结点的二叉树按层序编号,如果编号为i(1<i<=n)的结点与同样深度的满二叉树中编号为i的结点在二叉树中位置完全相同,则这棵二叉树称为完全二叉树。
 
技术分享
完全二叉树的图
 
技术分享
 
  满二叉树的特点有: 
 
技术分享
 
二叉树的性质
技术分享
 
技术分享
 
技术分享
 技术分享
 
技术分享
 
技术分享
   
技术分享
 
技术分享
 
二叉树的顺序存储结构
 
技术分享
 
二叉链表:二叉树每个结点最多有两个孩子,所以为它设计一个数据域和两个指针域,我们称这样的链表叫做二叉链表。
 
 技术分享
技术分享
 
  二叉树的遍历(traversing binary tree)是指从根结点出发,按照某种次序依次访问二叉树中所有结点,使得每个结点被访问一次且仅被访问一次。
 
二叉树的遍历方法
# 前序遍历:规则是若二叉树为空,则空操作返回,否则先访问根结点,然后前序遍历左子树,再前序遍历又子树。如图6-8-2所示,遍历的顺序为:ABDGHCEIF
技术分享
 
 # 中序遍历:规则是若树为空,则空操作返回,否则从根结点开始(注意并不是先访问根结点),中序遍历根节点的左子树,然后是访问根结点,最后中序遍历右子树。如果6-9-3所示,遍历的顺序为:GDHBAEICF。
技术分享
 
   # 后序遍历:规则是若树为空,则空操作返回,否则从左到右先叶子后结点的方式遍历访问左右子树,最后是访问根节点。如果6-8-4所示,遍历的顺序为:GHDBIEFCA。
技术分享
  
# 层序遍历:规则是若树为空,则空操作返回,否则从树的第一层,也就是根结点开始访问,从上而下逐层遍历,在同一层中,按从左到右的顺序对结点逐个访问。如图6-8-5所示,遍历的顺序为ABCDEFGHI。
技术分享


以上是关于第6章 树---二叉树的主要内容,如果未能解决你的问题,请参考以下文章

二叉树二叉查找树

数据结构-树二叉树的相关算法

树二叉树森林之间的转换

6-1-二叉树顺序存储结构-树和二叉树-第6章-《数据结构》课本源码-严蔚敏吴伟民版

算法漫游指北(第十三篇):二叉树的基本概念满二叉树完全二叉树二叉树性质二叉搜索树二叉树定义二叉树的广度优先遍历

树二叉树满二叉树完全二叉树遍历二叉树java实现