计蒜客课程竞赛入门--二叉搜索树 流程记
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了计蒜客课程竞赛入门--二叉搜索树 流程记相关的知识,希望对你有一定的参考价值。
二叉搜索树插入删除演示地址:
http://www.cs.usfca.edu/~galles/visualization/BST.html
细心的你应该发现了,二叉搜索树的每个节点都要比左边的子孙节点的值要大,比右边的要小。二叉搜索树的中序遍历就是将整棵树按从小到大的顺序输出。是不是很神奇^o^
如何在二叉搜索树中查找某个元素呢?首先从根出发,如果和根的值相等,则返回根,否则如果比根小就去左孩子,如果比根大就去右孩子,依次递归进行,直到找到值或者找不到返回空。
那么插入操作呢?紧接着上面的查找算法,在查找失败的时候插入到对应的位置即可。
删除操作会复杂一些,算法如下:
如果没有儿子:直接删除;
如果只有一个儿子:删除后将儿子放在该节点的位置;
有两个儿子:需要从右子树中找到其中的最小值并删除,并将最小值赋值给当前待删除节点。如下图所示:
另外还有线段树,并查集.
以上是关于计蒜客课程竞赛入门--二叉搜索树 流程记的主要内容,如果未能解决你的问题,请参考以下文章