java数据结构树 二叉查找树(二叉排序树) 二叉树查找结点 遍历方式 小结 二叉查找树的弊端 平衡二叉树 二叉树旋转机制 左旋 右旋 平衡二叉树什么时候左旋什么时候右旋 左左 左右 右右 右左

文章目录

    • 二叉查找树(二叉排序树)
    • 二叉树查找结点
    • 遍历方式
    • 小结
  • 二叉查找树的弊端
    • 平衡二叉树
  • 二叉树旋转机制
    • 左旋
    • 右旋
  • 平衡二叉树什么时候左旋什么时候右旋
    • 左左
    • 左右
    • 右右
    • 右左

java数据结构树 二叉查找树(二叉排序树) 二叉树查找结点 遍历方式 小结 二叉查找树的弊端 平衡二叉树 二叉树旋转机制 左旋 右旋 平衡二叉树什么时候左旋什么时候右旋 左左 左右 右右 右左_第1张图片

没有父结点和子结点的为null

二叉查找树(二叉排序树)

java数据结构树 二叉查找树(二叉排序树) 二叉树查找结点 遍历方式 小结 二叉查找树的弊端 平衡二叉树 二叉树旋转机制 左旋 右旋 平衡二叉树什么时候左旋什么时候右旋 左左 左右 右右 右左_第2张图片

二叉树查找结点

java数据结构树 二叉查找树(二叉排序树) 二叉树查找结点 遍历方式 小结 二叉查找树的弊端 平衡二叉树 二叉树旋转机制 左旋 右旋 平衡二叉树什么时候左旋什么时候右旋 左左 左右 右右 右左_第3张图片

遍历方式

前序:根左右
中:左根由
后:左右根
层:一层一层

小结

java数据结构树 二叉查找树(二叉排序树) 二叉树查找结点 遍历方式 小结 二叉查找树的弊端 平衡二叉树 二叉树旋转机制 左旋 右旋 平衡二叉树什么时候左旋什么时候右旋 左左 左右 右右 右左_第4张图片

二叉查找树的弊端

java数据结构树 二叉查找树(二叉排序树) 二叉树查找结点 遍历方式 小结 二叉查找树的弊端 平衡二叉树 二叉树旋转机制 左旋 右旋 平衡二叉树什么时候左旋什么时候右旋 左左 左右 右右 右左_第5张图片
需要查找5次才能找到13效率低 要改变效率需要左右差不多长 所以接下来引申了平衡二叉

平衡二叉树

java数据结构树 二叉查找树(二叉排序树) 二叉树查找结点 遍历方式 小结 二叉查找树的弊端 平衡二叉树 二叉树旋转机制 左旋 右旋 平衡二叉树什么时候左旋什么时候右旋 左左 左右 右右 右左_第6张图片
上图两个都不是平衡二叉树


java数据结构树 二叉查找树(二叉排序树) 二叉树查找结点 遍历方式 小结 二叉查找树的弊端 平衡二叉树 二叉树旋转机制 左旋 右旋 平衡二叉树什么时候左旋什么时候右旋 左左 左右 右右 右左_第7张图片
树的演变过程

二叉树旋转机制

java数据结构树 二叉查找树(二叉排序树) 二叉树查找结点 遍历方式 小结 二叉查找树的弊端 平衡二叉树 二叉树旋转机制 左旋 右旋 平衡二叉树什么时候左旋什么时候右旋 左左 左右 右右 右左_第8张图片

添加一个结点时通过旋转机制保证二叉树平衡

左旋

java数据结构树 二叉查找树(二叉排序树) 二叉树查找结点 遍历方式 小结 二叉查找树的弊端 平衡二叉树 二叉树旋转机制 左旋 右旋 平衡二叉树什么时候左旋什么时候右旋 左左 左右 右右 右左_第9张图片

添加12结点,然后找支点,支点就是能确定不是平衡二叉树了的位置,这边确定为10然后左旋,10变为左支树,新添加的数是右支树


情况二
java数据结构树 二叉查找树(二叉排序树) 二叉树查找结点 遍历方式 小结 二叉查找树的弊端 平衡二叉树 二叉树旋转机制 左旋 右旋 平衡二叉树什么时候左旋什么时候右旋 左左 左右 右右 右左_第10张图片
java数据结构树 二叉查找树(二叉排序树) 二叉树查找结点 遍历方式 小结 二叉查找树的弊端 平衡二叉树 二叉树旋转机制 左旋 右旋 平衡二叉树什么时候左旋什么时候右旋 左左 左右 右右 右左_第11张图片

右旋

java数据结构树 二叉查找树(二叉排序树) 二叉树查找结点 遍历方式 小结 二叉查找树的弊端 平衡二叉树 二叉树旋转机制 左旋 右旋 平衡二叉树什么时候左旋什么时候右旋 左左 左右 右右 右左_第12张图片


情况二
java数据结构树 二叉查找树(二叉排序树) 二叉树查找结点 遍历方式 小结 二叉查找树的弊端 平衡二叉树 二叉树旋转机制 左旋 右旋 平衡二叉树什么时候左旋什么时候右旋 左左 左右 右右 右左_第13张图片
java数据结构树 二叉查找树(二叉排序树) 二叉树查找结点 遍历方式 小结 二叉查找树的弊端 平衡二叉树 二叉树旋转机制 左旋 右旋 平衡二叉树什么时候左旋什么时候右旋 左左 左右 右右 右左_第14张图片

平衡二叉树什么时候左旋什么时候右旋

四种情况

左左

java数据结构树 二叉查找树(二叉排序树) 二叉树查找结点 遍历方式 小结 二叉查找树的弊端 平衡二叉树 二叉树旋转机制 左旋 右旋 平衡二叉树什么时候左旋什么时候右旋 左左 左右 右右 右左_第15张图片
java数据结构树 二叉查找树(二叉排序树) 二叉树查找结点 遍历方式 小结 二叉查找树的弊端 平衡二叉树 二叉树旋转机制 左旋 右旋 平衡二叉树什么时候左旋什么时候右旋 左左 左右 右右 右左_第16张图片

右旋

左右

java数据结构树 二叉查找树(二叉排序树) 二叉树查找结点 遍历方式 小结 二叉查找树的弊端 平衡二叉树 二叉树旋转机制 左旋 右旋 平衡二叉树什么时候左旋什么时候右旋 左左 左右 右右 右左_第17张图片
java数据结构树 二叉查找树(二叉排序树) 二叉树查找结点 遍历方式 小结 二叉查找树的弊端 平衡二叉树 二叉树旋转机制 左旋 右旋 平衡二叉树什么时候左旋什么时候右旋 左左 左右 右右 右左_第18张图片
java数据结构树 二叉查找树(二叉排序树) 二叉树查找结点 遍历方式 小结 二叉查找树的弊端 平衡二叉树 二叉树旋转机制 左旋 右旋 平衡二叉树什么时候左旋什么时候右旋 左左 左右 右右 右左_第19张图片

先局部左旋再整体右旋

右右

同左左原理

右左

同左右

你可能感兴趣的:(java,数据结构,开发语言)