二叉搜索树的前驱和后继

前言

推出一个新系列,《看图轻松理解数据结构和算法》,主要使用图片来描述常见的数据结构和算法,轻松阅读并理解掌握。本系列包括各种堆、各种队列、各种列表、各种树、各种图、各种排序等等几十篇的样子。

二叉搜索树

二叉搜索树(Binary Search Tree,简写BST),又称为二叉排序树,属于树的一种,通过二叉树将数据组织起来,树的每个节点都包含了健值 key、数据值 data、左子节点指针、右子节点指针。其中健值 key 是最核心的部分,它的值决定了树的组织形状;数据值 data 是该节点对应的数据,有些场景可以忽略,举个例子,key 为身份证号而 data 为人名,通过身份证号找人名;左子节点指针指向左子节点;右子节点指针指向右子节点。

二叉搜索树特点

  • 左右子树也分别是二叉搜索树。

  • 左子树的所有节点 key 值都小于它的根节点的 key 值。

  • 右子树的所有节点 key 值都大于他的根节点的 key 值。

  • 二叉搜索树可以为一棵空树。

  • 一般来说,树中的每个节点的 key 值都不相等,但根据需要也可以将相同的 key 值插入树中。

640?wx_fmt=jpeg
image

中序前驱节点

二叉树通过某种方式遍历后会得到一个序列结果,而某个节点的前驱节点就是该序列的前一个节点。由于中序遍历得到的序列的 key 值是按从小到大顺序排列的,所以在中序遍历下,某节点的前驱就是小于该节点的所有节点中最大的那个节点。

找中序前驱节点就是找小于某个节点的最大节点。主要有三种情况:

情况一

如果某个节点存在左子节点,那么左子节点(子树)下中的最大 key 值节点即是前驱。看下这种情况,找“C”节点的前驱,

  • 3
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值