zoukankan      html  css  js  c++  java
  • 二叉搜索树

    二叉搜索树

    又称二叉排序树,它或者是一棵空树,或者是具有下列性质的二叉树:若它的左子树不为空,则左子树上所有节点的值均小于它的父节点的值,若它的右字树不为空,则右子树上所有节点的值均大于它的父节点的值,它的左右子树叶分别是二叉排序树。二叉排序树能高效的实现查找,插入,删除。比较复杂的是删除操作后如何安排子节点.

    插入节点

    • 若当前二叉树为空,则插入的元素为根节点
    • 若插入的元素小于根节点则在左子树中插入,若大于跟节点则在右子树中插入,递归执行此过程知道找到正确位置将元素插入

    删除节点分几种情况:

    • 叶子节点:只要把指向该节点的指针指向空
    • 只有一个子节点的节点:只要把指向该节点指针指向其子节点就可以
    • 有两个子节点的节点:在左子树中查找前驱节点,如节点A,将A的值与与被删除节点进行交换,删除A节点

    clipboard

    两个概念:

    前驱节点: 左子树中最大的节点

    后继节点:右子树种的最小节点


    源代码
  • 相关阅读:
    UWP Xaml设计器中输入特殊字符
    UWP DEP0700: 应用程序注册失败。[0x80073CF9] Install failed. Please contact your software vendor. (Exception from HRESULT: 0x80073CF9)
    UWP 使用Windows.Media.FaceAnalysis.FaceDetector检测人脸
    .Net Core和.Net Standard直观理解
    双屏互动h5
    前端发展趋势与开发技巧
    git学习总结
    前端路由
    【react开发】使用swiper插件,loop:true时产生的问题解决方案
    【纪念】我的大学同学名单
  • 原文地址:https://www.cnblogs.com/phenixyu/p/5399201.html
Copyright © 2011-2022 走看看