zoukankan      html  css  js  c++  java
  • 二叉树相关概念

    1.二叉树(BinaryTree):每个节点最多有两个分支(分支的度小于2)的树结构,可为空树,如下所示。

    2.完全二叉树(Complete Binary Tree):在一棵二叉树中,除了最后一层,都是满的,并且最后一层或者是满的,或者是右边缺少连续若干节点,成为完全二叉树,如图所示:

    具有k个节点的完全二叉树深度为log2(k)+1

    3.满二叉树(Full Tree):一棵深度为k,并且有个节点的二叉树,成为满二叉树,如图所示:

    4.二叉查找树(Binary Search Tree):又称为二叉搜索树,排序二叉树,可为空树,或节点满足左子树所有节点<跟节点<右子树所以节点,不存在相等值的节点,如图所示:

    5.平衡二叉树(Balanced Binary Tree):是一种结构平衡的二叉搜索树,即叶子节点深度差不超过1,能够在O(logn)内完成插入、查找和删除操作,结构如图所示,常见的平衡二叉树有AVl树、红黑树等。

    6.AVL树:又被称为高度平衡树,是最先发明的自平衡二叉查找树,任何节点的两个儿子子树的高度最大差别为1,增加和删除可能需要通过一次或多次树旋转来重新平衡这个树,树图如图所示。

          平衡前*(非AVL树)                     平衡后(AVL树)

    7.红黑树(Red-black tree):是一种自平衡二叉查找树,又称为“对称二叉B树”,除了满足所有二叉查找树的要求之外还需要满足以下要求:

    (1)节点是红色或者是黑色的

    (2)跟节点是黑色的

    (3)每个叶子节点都是黑色的(叶子是NIL节点)

    (4)每个红色节点必须有两个黑色节点(从叶子到根节点的所有简单路径上不可能有两个连续的红色节点)

    (5)从任一节点到其每个叶子的所有简单路径都饱和相同数目的节点

    注:

    NIL节点就是空节点,二叉树中庸NIL节点代替NULL

    简单路径:指顶点序列中顶点不重复出现的路径

     

    8.线索二叉树:添加了直接指向节点的前驱和后继的指针的二叉树,如图所示:

    9.哈夫曼树:又称为最优二叉树,是一种带权路径长度最短的二叉树,霍夫曼树构造过程如下:

    (1).将英文字母按照出现频率从小到大排序,如图所示.

    (2)每个字母代表一个终端节点(叶子),比较字母的出现频率,依次选取最小的两个字母组成一个新的节点,如F.O组成节点值为5

    (3)比较5.R.G.E.T,发现RG的频率最小,故相加4+4=8,得到值为8的节点,依次类推构架成树,如图所示

    (4)将霍夫曼树的所有左链接置为0,右链接置为1,然后从跟节点到叶子节点分别对所有字母进行编码,完成哈夫曼编码,如图所示

  • 相关阅读:
    MyEclipse和Microsoft Visual Studio常用快捷键
    数据源与JNDI资源实现JSP数据库连接池实例
    Tomcat配置+JSP页面模板修改UTF-8
    jquery插件
    jsp地址栏传中文显示乱码解决方法
    Java Web Project自定义错误页面,log4j记录日志。
    [原创] Java JDBC连接数据库,反射创建实体类对象并赋值数据库行记录(支持存储过程)
    测试上传图片
    js获取日期:昨天今天和明天、后天
    Axure谷歌浏览器Chrome扩展程序下载及安装方法
  • 原文地址:https://www.cnblogs.com/feichangnice/p/7726270.html
Copyright © 2011-2022 走看看