`
uule
  • 浏览: 6307908 次
  • 性别: Icon_minigender_1
  • 来自: 一片神奇的土地
社区版块
存档分类
最新评论

二叉树总结

 
阅读更多

百度百科-二叉树

轻松搞定所有二叉树题目

 

结点度(树的度)

结点拥有的子树数称为结点的度

树是n(n>0)个结点的有限集合(换句话说,树是由节点组成的)。当n=0时称为空树。

在任一非空树中:

①有且仅有一个称为该树之根的节点;

②除根结点之外的其余节点可分为有限个互不相干的集合,且其中每一个集合本身又是一棵树,称为根的子树。这是一个递归定义,即在树的定义中又用到了树。树的定义显示了树的特性,即一棵树是由根结点和若干棵子树构成的,而子树又可由若干棵更小的子树构成。树中的每一个结点都是该树中某一棵子树的根结点。



 

如图 A结点的度为3,B结点的度为2,c结点的度为1,D结点的度为3

E、F、G、H、I 以及J度都为0,称为叶子结点.

 

 

================================================================================

二叉树是每个节点最多有两个子树的有序树。二叉树常被用于实现二叉查找树和二叉堆。值得注意的是,二叉树不是树的特殊情形。在图论中,二叉树是一个连通的无环图,并且每一个顶点的度不大于2。有根二叉树还要满足根结点的度不大于2。有了根结点后,每个顶点定义了唯一的根结点,和最多2个子结点。

 

 二叉树是每个结点最多有两个子树的有序树。通常子树的根被称作“左子树”(left subtree)和“右子树”(right subtree)。二叉树常被用作二叉查找树和二叉堆或是二叉排序树。二叉树的每个结点至多只有二棵子树(不存在出度大于2的结点),二叉树的子树有左右之分,次序不能颠倒。 

 

辨析 

二叉树不是树的一种特殊情形,尽管其与树有许多相似之处,但树和二叉树有两个主要差别

1. 树中结点的最大度数没有限制,而二叉树结点的最大度数为2

2. 树的结点无左、右之分,而二叉树的结点有左、右之分

 

重要概念

 

(1)完全二叉树

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

(2)满二叉树

      除了叶结点外每一个结点都有左右子叶且叶子结点都处在最底层的二叉树。

(3)深度

      二叉树的层数,就是深度。

 

 

遍历 

 遍历是对树的一种最基本的运算,所谓遍历二叉树,就是按一定的规则和顺序走遍二叉树的所有结点,使每一个结点都被访问一次,而且只被访问一次。由于二叉树是非线性结构,因此,树的遍历实质上是将二叉树的各个结点转换成为一个线性序列来表示。

 

遍历时,如果二叉树为空,空操作。

 

前序遍历递归解法:

     如果二叉树不为空,访问根节点,前序遍历左子树,前序遍历右子树

 

中序遍历递归解法

     如果二叉树不为空,中序遍历左子树,访问根节点,中序遍历右子树

 

后序遍历递归解法 

     如果二叉树不为空,后序遍历左子树,后序遍历右子树,访问根节点

  • 大小: 5.4 KB
分享到:
评论

相关推荐

    部分二叉树总结

    自己根据资料对二叉搜索树,B树,红黑树等的基本梳理和总结,一张脑图就能理解,费了一些功夫弄出来的,手里没多少分的就不要下了

    二叉树面试题 树和二叉树总结.doc

    二叉树面试题 树和二叉树考研试题总结

    平衡二叉树C实现源码(带详细注释)

    //实现二叉树总结点数的求值 int LeafNodeNum(BSTree T); //实现二叉树叶子结点数的求值 Status DeleteBST(BSTree &T,ElemType e); //实现树的节点的删除 int TreeHeight(BSTree T); //实现树的高度的求值 int ...

    二叉树大总结1_二叉树的各种题(遍历、查找)

    二叉树大总结1_二叉树的各种题(遍历、查找等),是网上一个不错的学习例子。

    树与二叉树算法总结

    树与二叉树的详细算法,很全 以二叉树表示算术表达式 建立二叉树算法 以及一些习题

    四种根据给定遍历序列构造二叉树总结(JAVA递归和非递归版)

    构造二叉树根据前序与中序遍历序列构造二叉树根据先序遍历构造二叉搜索树根据中序与后序遍历序列构造二叉树根据前序与后序遍历序列构造二叉树 二叉树的遍历顺序及方法可参考之前写过的二叉树的遍历(JAVA递归和非...

    数据结构之树与二叉树算法总结

    数据结构之树与二叉树算法总结,数据结构之树与二叉树算法总结 数据结构

    二叉树课程设计的实验报告

    3 程序所能达到的功能:生成一个新的二叉树,实现对二叉树的先序,中序,后序和层次遍历,计算二叉树的深度,结点数,叶结点数,。 4 测式数据: A生成一个新的二叉树后,直接在键盘上按要求输入字符,可以依次输入...

    二叉树的常用操作代码

    /*二叉树的操作:1,二叉树建立(先序);2,二叉树的非递归遍历,包括...3,求二叉树总结点、双孩子结点、单孩子结点、叶子结点数目;4,计算二叉树的高度,判断结点的层次; 5,判断二叉树是否相似;6,交换二叉树的左右子树*/

    二叉树遍历实验报告

    实现了二叉树的前中后遍历,以及层次遍历,求出了二叉树的深度,叶子个数。 实验报告还包含目录,所有遍历方法的解释,以及结果展示和结论改进

    数据结构实验——二叉树的建立和遍历.zip

    1.采用二叉链表作为存储结构...总结点数。 6.用递归公式计算二叉树的高度(BiTreeDepth(BT)=0; 当二叉树空时(BT==NULL)。 BiTreeDepth(BT)=max{ BiTreeDepth(BT->lchild), BiTreeDepth(BT->rchild)}+1;当二叉树不空时

    总结的关于二叉树的所有操作(经典程序)

    总结面试中出现的所有关于二叉树的操作,包括二叉树的深度优先遍历、广度优先遍历,二叉树的各种建立方式(递归和非递归都有),以及先序、中序、后序遍历的递归和非递归算法的总结。

    数据结构——二叉树

    另外还实现了编写按层次顺序(同一层自左至右)遍历二叉树的算法、后序递归遍历计算二叉树的深度的算法、判断给定二叉树是否为完全二叉树(通过左右子树情况以及总结点数)、统计二叉树中所有结点的个数的算法

    二叉树的基本操作实现及其应用

    设计程序实现二叉树结点的类型定义和对二叉树的基本操作。该程序包括二叉树结构类型以及每一种操作的具体的函数定义和主函数。 1. 按先序次序建立一个二叉树 ,用#表示某结点的左右子树是否为空,用于表示该结点是否...

    二叉树的考研常见问题代码

    408考试二叉树习题答案. 主要有递归和非递归二种写法.

    二叉树面试题目总结 全

    本文总结了二叉树考试的常见笔试面试。 肯定不会让你失望,希望对你找工作有用。

    数据结构实验报告-实现二叉树的基本操作-用顺序存储和链式存储结构

    实验总结和体会 实现的基本操作如下: InitBiTree(&T) DestroyBiTree(&T) CreateBiTree(&T) ClearBiTree(&T) BiTreeEmpty(T) BiTreeDepth(T) Root(T) Value(T,e) Assign(T,&e,value) Parent(T,e) LeftChild(T,e) ...

    二叉树叶子结点个数计算.doc

    二叉树叶子结点个数计算.doc

    第六章 树和二叉树作业及答案(100分).docx

    2. 在有n个叶子结点的哈夫曼树中,总结点数是 2n-1 。 3. 在有n个结点的二叉链表中,值为非空的链域的个数为 n-1 。 4. 某二叉树的中序遍历序列和后序遍历序列正好相反,则该二叉树一定是 任一结点无左孩子 的二叉树...

Global site tag (gtag.js) - Google Analytics