数据结构与算法学习总结06

day06

树结构

 // 遍历方法 先序遍历
            BinarySearchTree.prototype.preOrderTraversal=function(handle){
                this.preOrderTraversalNode(this.root,handle)
            }
            BinarySearchTree.prototype.preOrderTraversalNode=function(node,handle){
                if(node!=null){
                    // 处理经过的节点
                    handle(node.key)
                    // 处理经过节点的左子节点
                    this.preOrderTraversalNode(node.left,handle)
                    // 处理经过节点的有子节点
                    this.preOrderTraversalNode(node.right,handle)
                }

}     

在这里插入图片描述

非平衡树:数据分布不均匀。

红黑树:通过一些特性来保持数的平衡。

在这里插入图片描述

根节点到叶节点最长路径不会超过最短路径的两倍。

插入节点保证还是红黑树,变色,左旋,右旋。

左旋

在这里插入图片描述

右旋

在这里插入图片描述

1.新节点n位于树的根上没有父节点:直接讲红色变成黑色。(插入的节点默认为红色)
2、新节点的父节点P是黑色:直接加入,为加入的红节点加两个黑色的null节点。
3、父P,叔U红,祖G黑:变成->父P,叔黑,祖G红。

4 父红叔黑组黑,是左儿子:变成父黑组红,进行右旋转。

在这里插入图片描述

5.付红输黑组黑,n是右儿子:以P作为心插入的红色节点考虑;将自己变成黑色,组便红,以组为根,进行右旋转。

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值