zoukankan      html  css  js  c++  java
  • java回顾之树

    java回顾之树

    一、计算机中的树

      1.2、二叉树

    如果书中的每个节点的子节点的个数不超过2,那么该树就是一个二叉树

    1.3二叉查找树

    1、左子树上所有的节点的值均小于他的父节点的值

    2、右子树上所有的节点值均大于他的父节点的值

    3、每一个子节点最多有两个子树

    二叉查找树的排序:按照左中右的方式就能够获取到从小到大排列的元素。

    1.4二叉平衡树

    二叉平衡树是一种特殊的二叉查找树,二叉平衡树最高高度和最低高度高度差绝对值不大于1

    平衡树可以提高查找的效率

    旋转可以把不平衡的树变成平衡的树

    左旋

      左旋就是把左边的元素往下放

    右旋

      右旋就是把右边的元素往下放

    旋转的目的就是把不平衡的二叉查找树变成平衡的二叉查找树。

    不平衡的情况有四种

    左左   右旋

    左右   先对左子树进行左旋,再对整个树进行右旋

    右右   左旋

    右左  先对右子树进行右旋,再对整个树进行左旋

    1.5红黑树

    红黑树是一个相对平衡的二叉查找树,他打不到绝对的平衡但是他不会出现瘸子的现象,可以提高查找效率

    java中有集合底层就是用红黑树。

    特点:

      1、每一个节点或是红色的,或者是黑色的

      2、根节点必须是黑色

      3、每个叶节点(Nil)是黑色的,如果一个节点没有子节点,则该节点相应的指针属性值为 Nil,这些Nil视为叶节点

      4、如果某一个节点是红色,那么他的子节点必须是黑色,不能出现两个红色节点相连的情况

      5、对每一个节点,从该节点到其所有后代叶节点的简单路径上,均包含相同数目的黑色节点;

  • 相关阅读:
    使用SVG绘制湖南地图
    javascript格式化table标签内容
    Canvas制作天气预报走势图
    数据字典的设计--5.数据的保存
    数据字典的设计--4.DOM对象的ajax应用
    数据字典的设计--3.首页添加删除表格(JS实现)
    数据字典的设计--2.投影查询
    数据字典的设计--1.首页功能实现
    【截串存取】分割文本字符串的方法
    【量产工具修复】U盘插上没反应,格式化提示有写保护
  • 原文地址:https://www.cnblogs.com/gushiye/p/13817755.html
Copyright © 2011-2022 走看看