码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2016-06-10 17:54:07      阅读:277      评论:0      收藏:0      [点我收藏+]

标签:

技术分享

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

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

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

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

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

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

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

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

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

技术分享

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

 

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

标签:

原文地址:http://www.cnblogs.com/beSunshine/p/5573933.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!