树与二叉树

**树 **

  是由n(n>=1)个有限节点组成一个具有层次关系的集合。
  它具有以下特点:
            1.每个节点有零个或多个子节点;
            2.没有父节点的节点称为根节点;
            3.每一个非根节点有且只有一个父节点 ;
            4.除了根节点外,每个子节点可以分为多个不相交的子树。
Paste_Image.png

二叉树

        二叉树是每个节点最多有两棵子树的树结构。
        通常子树被称作“左子树”和“右子树”。
        二叉树常被用于实现二叉查找树和二叉堆。
  性质:
            二叉树的每个结点至多只有2棵子树(不存在度大于2的结点),二叉树的子树有左右之分,次序不能颠倒。
            二叉树的第i层至多有2^(i-1)个结点;
            深度为k的二叉树至多有2^k-1个结点。

满二叉树

            一棵深度为k,且有2^k-1个节点的二叉树称之为满二叉树;

完全二叉树

           深度为k,有n个节点的二叉树,当且仅当其每一个节点都与深度为k的满二叉树中,序号为1至n的节点对应时,并且最下层上的结点都集中在该层最左边的若干位置上,称之为完全二叉树。
Paste_Image.png

三种遍历方法

    二叉树主要是由3个基本单元组成,根节点、左子树和右子树。
    如果限定先左后右,那么根据这三个部分遍历的顺序不同,可以分为先序遍历、中序遍历和后续遍历三种。

  先序遍历:
          若二叉树为空,则空操作,否则先访问根节点,再先序遍历左子树,最后先序遍历右子树
  中序遍历:
          若二叉树为空,则空操作,否则先中序遍历左子树,再访问根节点,最后中序遍历右子树
  后序遍历:
          若二叉树为空,则空操作,否则先后序遍历左子树访问根节点,再后序遍历右子树,最后访问根节点。
Paste_Image.png

树与二叉树的区别

      1.二叉树每个节点最多有2个节点,树则无限制
      2.二叉树中节点的子树分为左子树和右子树,即使某节点只有一棵树,也要指明该子树是左子树还是右子树,即二叉树是有序的
      3.树绝不能为空,它至少有一个节点,而一棵二叉树可以是空的  

二叉查找树

  二叉查找树就是二叉排序树,也叫二叉搜索树。
  二叉查找树或者是一颗空树,或者是具有下列性质的二叉树:
              1:若左子树不空,则左子树上所有节点的值均小于它的根节点的值
              2:若右子树不空,则右子树上所有节点的值均大于它的根节点的值
              3:左,右子树也分别为二叉排序树
              4:没有键值相等的节点
Paste_Image.png

平衡二叉树

          平衡二叉树又称AVL树,它或者一颗没有空树,或者是具有下列性质的二叉树:
              它的左子树和右子树都是平衡二叉树,且左子树和右子树的深度之差的绝对值不超过1   
Paste_Image.png
AVL树是最先发明的自平衡二叉查找树算法。在AVL中任何节点的两个儿子子树的高度最大差别为1,所以它称为高度平衡树,n个节点的AVL树最大深度约为1.44log2n
 查找、插入和删除在平均和最坏情况下都是O(logn)。

红黑二叉树

    红黑树是平衡二叉树的一种,它保证在最坏情况下基本动态集合操作的事件复杂度为O(logn)
    红黑树和平衡二叉树区别如下:
            1.红黑树放弃了追求完全平衡,追求大致平衡,在与平衡二叉树的时间复杂度相差不大的情况下,保证每次插入最多需要三次旋转就能达到平衡
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 四、树与二叉树 1. 二叉树的顺序存储结构 二叉树的顺序存储就是用数组存储二叉树。二叉树的每个结点在顺序存储中都有...
    MinoyJet阅读 5,507评论 0 7
  • 课程是中国大学MOOC浙江大学出的数据结构。作为一个数据结构爱好者,我觉得很有必要稍微整理下各章节的笔记,对知识进...
    yhcheer阅读 2,900评论 0 0
  • 树的概述 树是一种非常常用的数据结构,树与前面介绍的线性表,栈,队列等线性结构不同,树是一种非线性结构 1.树的定...
    Jack921阅读 9,932评论 1 31
  • 二叉树的遍历 二叉树的操作有很多种,其中最常用的是二叉树的遍历。二叉树的遍历是指按照某种顺序访问二叉树中的每个结点...
    Richie_ll阅读 3,153评论 0 4
  • 在乎了会心痛,那就不在乎好了。 曾经我以为我有个很好很好的朋友。但是… 当我有点成就时,她一定会不以为然的否定我。...
    小小乐阅读 2,924评论 0 1