计蒜客课程竞赛入门--二叉搜索树 流程记

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了计蒜客课程竞赛入门--二叉搜索树 流程记相关的知识,希望对你有一定的参考价值。

技术分享

二叉搜索树插入删除演示地址:

http://www.cs.usfca.edu/~galles/visualization/BST.html

细心的你应该发现了,二叉搜索树的每个节点都要比左边的子孙节点的值要大,比右边的要小。二叉搜索树的中序遍历就是将整棵树按从小到大的顺序输出。是不是很神奇^o^

如何在二叉搜索树中查找某个元素呢?首先从根出发,如果和根的值相等,则返回根,否则如果比根小就去左孩子,如果比根大就去右孩子,依次递归进行,直到找到值或者找不到返回空。

那么插入操作呢?紧接着上面的查找算法,在查找失败的时候插入到对应的位置即可。

删除操作会复杂一些,算法如下:

    如果没有儿子:直接删除;

    如果只有一个儿子:删除后将儿子放在该节点的位置;

    有两个儿子:需要从右子树中找到其中的最小值并删除,并将最小值赋值给当前待删除节点。如下图所示:

技术分享

另外还有线段树,并查集.

 

以上是关于计蒜客课程竞赛入门--二叉搜索树 流程记的主要内容,如果未能解决你的问题,请参考以下文章

计蒜客课程竞赛入门--数塔问题(DP) 流程记

计蒜客课程竞赛入门--统计三角形 代码流程摘记

计蒜客课程竞赛入门--最长上升子序列(LIS) 流程记

计蒜客课程竞赛入门--蒜头学算数 流程记

计蒜客课程竞赛入门--冗余关系(并查集) 流程记

计蒜客课程竞赛入门--最近通话记录(STL队列) 流程记