![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构 算法
zbuger
这个作者很懒,什么都没留下…
展开
-
跳表原理
为什么选择跳表目前经常使用的平衡数据结构有:B树,红黑树,AVL树,Splay Tree, Treep等。想象一下,给你一张草稿纸,一只笔,一个编辑器,你能立即实现一颗红黑树,或者AVL树出来吗? 很难吧,这需要时间,要考虑很多细节,要参考一堆算法与数据结构之类的树,还要参考网上的代码,相当麻烦。用跳表吧,跳表是一种随机化的数据结构,目前开源软件 Redis转载 2016-03-30 10:58:37 · 328 阅读 · 0 评论 -
教你初步了解红黑树
作者:July、saturnman 2010年12月29日本文参考:Google、算法导论、STL源码剖析、计算机程序设计艺术。推荐阅读:Left-Leaning Red-Black Trees, Dagstuhl Workshop on Data Structures, Wadern, Germany, February, 2008,直接下载:http://www.c转载 2016-03-30 13:34:57 · 407 阅读 · 0 评论 -
常用树结构
BST树 即二叉搜索树: 1.所有非叶子结点至多拥有两个儿子(Left和Right); 2.所有结点存储一个关键字; 3.非叶子结点的左指针指向小于其关键字的子树,右指针指向大于其关键字的子树; 如: BST树的搜索,从根结点开始,如果查询的关键字与转载 2016-03-30 14:00:56 · 698 阅读 · 0 评论 -
优先级队列与堆排序
在很多应用中,我们通常需要按照优先级情况对待处理对象进行处理,比如首先处理优先级最高的对象,然后处理次高的对象。最简单的一个例子就是,在手机上玩游戏的时候,如果有来电,那么系统应该优先处理打进来的电话。在这种情况下,我们的数据结构应该提供两个最基本的操作,一个是返回最高优先级对象,一个是添加新的对象。这种数据结构就是优先级队列(Priority Queue) 。本文首先介绍优先级队转载 2016-04-14 15:19:03 · 392 阅读 · 0 评论 -
Trie树
一:概念 下面我们有and,as,at,cn,com这些关键词,那么如何构建trie树呢?从上面的图中,我们或多或少的可以发现一些好玩的特性。 第一:根节点不包含字符,除根节点外的每一个子节点都包含一个字符。 第二:从根节点到某一节点,路径上经过的字符连接起来,就是该节点对应的字符串。 第三:每个单词的公共前缀作转载 2016-04-18 16:15:13 · 276 阅读 · 0 评论 -
括号所有有效组合
实现一种算法,打印n对括号的全部有效组合(左右括号正确配对)核心思想: 1.左括号:只要左括号还没用完,就可以插入括号。 2.右括号:只要不造成语法错误,就可以插入右括号。即只要右括号比左括号还多,就会出现语法错误。以上两个是并列条件,总结的代码如下:import java.util.ArrayList;public class KuoHao {原创 2016-05-05 11:48:35 · 1327 阅读 · 0 评论