[数据结构]浅谈排序二叉树

1 定义

当一个普通二叉树的每个节点满足以下2个条件时,即为排序二叉树:

  1. 左分支所有节点的值小于根节点值
  2. 右分支素有节点的值大于根节点值

2 操作

2.1 查询

1 查询值:target , 根节点值:root
2 IF target = root 
3	THEN 返回
4	ELSEIF target < root
5		THEN 下钻到左分支递归查找
6		ELSE 下钻到右分支递归叉查找
7 END IF

2.2 插入

新节点:new , 当前节点 now, 根节点: root
IF(new == root){
	返回;
}ELSEIF(new < root) {
	钻入左分支;
	IF(左分支下 == null){
 		插入new;
	} else{
		继续递归,直到找到空位。
	}
}ELSEIF(new > root){
	钻入右分支;
	IF(右分支下 == null){
 		插入new;
	} else{
		继续递归,直到找到空位。
	}
}	

在这里插入图片描述

2.3 删除

删除操作分三种情况:

  1. 无子节点:直接删除目标节点。
  2. 有1个子节点:删除目标节点,将原子节点放置到目标节点。
  3. 有2个子节点:删除目标节点,将原右子树中最小的节点放置到目标节点。
    在这里插入图片描述
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值