查找树ADT--二叉查找树

本文介绍了二叉查找树的性质,平均深度为O(logN),并详细讲解了contains、findMin、findMax、insert及remove方法。讨论了如何处理重复元素插入,以及删除节点的策略。还探讨了删除操作的平均情况分析和平衡查找树的重要性,如AVL树和伸展树。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

简介

  二叉树的一个重要应用是它们在查找中的使用。

  二叉查找树的性质:对于树中的每个节点X,它的左子树中所有项的值小于X中的项,而它的右子树中所有项的值大于X中的项。这意味着该树所有的元素可以用某种一致的方式排序。

  二叉查找树的平均深度是O(logN)。二叉查找树要求所有的项都能够排序。树中的两项总可以使用Comparable接口中的compareTo方法比较。


BinaryNode类像链表类中的节点类一样,是一个嵌套类:

private static class BinaryNode<AnyTpye>{
		BinaryNode(AnyType){
			this(theElement,null,null);
		}
		
		BinaryNode(AnyType theElement,BinaryNode<AnyType> lt,BinaryNode<AnyType> rt){
			element = theElement;left = t;right = rt;
		}
		
		AnyType element;//节点上的数据
		BinaryNode<AnyType> left;//左子节点
		BinaryNode<AnyType> right;//右子节点
}


二叉查找树架构如下,代码BinarySearchTree中唯一的数据域是对根节点的引用,这个引用对于空树来说是null。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值