二叉搜索树的创建,插入,查找过程实现

基于顺序查找
数据随机:顺序查找,遍历 时间复杂度O(N)
数据已序:二分查找,时间复杂度O(log2^N)
索引顺序:数据量大,建立静态索引

基于树形查找
二叉树: 二叉搜索树,二叉平衡树
多叉树: B-树,B+树,B*树

基于哈希查找
哈希:哈希表,哈希桶,位图,布隆过滤器,

二叉搜索树(二叉排序树)
特点:
左子树不为空,则左子树上所有节点小于根节点的值
右子树不为空,则右子树上所有节点大于根节点的值
它的左右子树也为二叉搜索树
*中序遍历为递增序列

//
二叉搜索树的操作:
查找

     若根节点不为空
		如果根节点key==查找key,返回true
		如查找key<根节点key,在左子树查找
	  	如查找key>根节点key,在右子树查找

插入
在二叉搜索树中插入新元素,必须先检测该元素是否在树中已经存在 ,若存在则不进行插入操作,否则将新元素加入到搜索停止的地方

树为空,则直接插入,返回true
树不为空,按二叉搜索树性质查找插入的位置,插入新节点

删除
首先查找元素是否存在二叉搜索树中,如果不存在,返回。
若存在则删除情况如下

		a.要删除的节点无孩子节点
				直接删除该节点
		b.要删除的节点只有左孩子节点
				删除该节点,且双亲节点指向被删节点的左孩子节点
		c.要删除的节点只有右孩子节点
				删除该节点,且双亲节点指向被删节点的右孩子节点
		d.要删除的节点有左右孩子节点
				在它的右子树中寻找中序下的第一个节点(关键码最小),
				用它的值填补到被删节点中,再处理该节点的删除问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值