我是靠谱客的博主 欢喜服饰,最近开发中收集的这篇文章主要介绍数据结构之二叉排序树,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

定义

在这里插入图片描述
主要是左子树的节点上的值全都小于右子树

查找(递归实现和非递归实现)

在这里插入图片描述
从跟节点判断大小来决定是走左子树还是右子树

在这里插入图片描述

插入

插入节点从根节点出发
比如插入12
12<19左子树走
12<13还是往左子树走
12>11
可知12应该在11的右子树当中,11没有右子树直接新建节点
!!!新插入的节点一定为叶子节点!!!
在这里插入图片描述

构造

在这里插入图片描述

删除

1.叶子节点

在这里插入图片描述

2.删除节点只有一颗右子树或左子树(不是左右子树都有)

在这里插入图片描述
在这里插入图片描述
直接让左子树/右子树代替其即可

3.既有左子树又有右子树

两种代替方法:
1.右子树最靠左下角的(右子树中最小的)
2.左子树最靠右下角的(左子树中最大的)
在这里插入图片描述
在这里插入图片描述
当然也可以用左子树替代
在这里插入图片描述

查找效率分析(含ASL)

查找成功的平均查找长度可以看成层次×节点数/节点总数
在这里插入图片描述

平衡二叉树对查找效率有提高
在这里插入图片描述

查找失败效率=(叶子节点所在层次+1)*叶子节点的层次/总共没有的叶子节点(这个自己好好理解一下吧)
在这里插入图片描述

总结

在这里插入图片描述

最后

以上就是欢喜服饰为你收集整理的数据结构之二叉排序树的全部内容,希望文章能够帮你解决数据结构之二叉排序树所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(51)

评论列表共有 0 条评论

立即
投稿
返回
顶部