数据结构
文章平均质量分 54
crazyhacking
like a hacker
展开
-
设计包含min函数的栈,O(1)空间实现方法
原址:http://blog.csdn.net/anchor89/article/details/6055412#comments 题目:定义栈的数据结构,要求添加一个min函数,能够得到栈的最小元素。要求函数min、push以及pop的时间复杂度都是O(1)。注:这是06年一道Google的面试题.先来说个常规解和他的一个优化,常规解的时间复杂度符合要求,但需要线性的转载 2012-10-11 23:18:44 · 1160 阅读 · 0 评论 -
判断一个单向链表是否有环和判断一个单向链表是否是循环链表
一 初步解法原帖:http://hi.baidu.com/_00000000/blog/item/9688a3895bb817759f2fb460.html判断一个单向链表是否是循环链表比较简单,只要将一个指针p指向表的第一个节点,而另外一个指针q指向p的下一个节点,然后让q向后滑动,直到q为0或q等于p(此时表是循环链表)为止。而判断一个单向链表是否有环有点儿麻烦,因原创 2012-09-21 10:39:57 · 1055 阅读 · 0 评论 -
二叉排序树和平衡二叉树
一 二叉排序树/二叉查找树(Binary Search Tree),或者是一棵空树,或者是具有下列性质的二叉树:若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值;若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值;它的左、右子树也分别为二叉排序树。二 AVL树(平衡二叉树)http://zh.wik原创 2012-11-08 00:38:12 · 7701 阅读 · 0 评论 -
红黑树
概念红黑树是AVL树的变种,具体定义如下:红黑树也是一棵二叉查找树,要满足一下性质(1)每个节点或者是黑色,或者是红色。(2)根节点是黑色。(3)每个叶子节点(NIL)是黑色。(4)如果一个节点是红色的,则它的子节点必须是黑色的。(5)从一个节点到该节点的子孙节点的所有路径上包含相同数目的黑节点。定义:从某个节点x出发(不原创 2012-11-08 03:03:00 · 1256 阅读 · 0 评论 -
字典树
第一部分、Trie树1.1、什么是Trie树 Trie树,即字典树,又称单词查找树或键树,是一种树形结构,是一种哈希树的变种。典型应用是用于统计和排序大量的字符串(但不仅限于字符串),所以经常被搜索引擎系统用于文本词频统计。它的优点是:最大限度地减少无谓的字符串比较,查询效率比哈希表高。 Trie的核心思想是空间换时间。利用字符串的公共前缀来降低查询时间的开销以达到提高效率转载 2012-11-07 23:47:35 · 632 阅读 · 0 评论 -
后缀树
第二部分、后缀树2.1、后缀树的定义 后缀树(Suffix tree)是一种数据结构,能快速解决很多关于字符串的问题。后缀树的概念最早由Weiner 于1973年提出,既而由McCreight 在1976年和Ukkonen在1992年和1995年加以改进完善。 后缀,顾名思义,甚至通俗点来说,就是所谓后缀就是后面尾巴的意思。比如说给定一长度为n的字符串S=S1S2.转载 2012-11-08 00:06:35 · 983 阅读 · 0 评论 -
数据结构之堆
原帖转自:http://www.cnblogs.com/Jason-Damon/archive/2012/04/18/2454649.html 对于堆的数据结构的介绍,在网上搜了下,具体讲的不是很多。发现比较好的一篇介绍堆的博客是http://dongxicheng.org/structure/heap/。在此感谢他。 通过对上面那篇博客的学习,然后自己也去翻了下《算法导转载 2013-08-04 17:31:36 · 710 阅读 · 0 评论 -
MAP--复杂map结构的构造
我的关键结构比如struct{ int a; int b; int c;}s;因为这三个数据是基本信息,可以唯一区别一个设备。拿这样一个数据结构作为索引就能找到每个设备。我现在想这么用map因为map是二叉树,好像没法拿结构体比较大小,去索引,所以把结构体s改成类,重载小于号,让他能比较大小。class s{public:转载 2013-10-21 15:11:34 · 2325 阅读 · 0 评论