数据结构
文章平均质量分 76
cool_bomb
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
trie树
Trie树 1基本描述 Tire树又称字典树,单词查找树,或者前缀树,是一种用于快速检索的多叉数据结构。 2用途 利用公共前缀来节约存储空间,一般用于构建字典,构建词库,扫描词库匹配。缺点是内存消耗非常大。 3设计之前考虑的一些性质 根节点为空,除他以外的每个子节点都可以不存储字符(只不过要知道哪个字符对应哪个branch,可以用字符映射到对应的分支,一一对应)。存储字符也可以。 单转载 2013-01-14 00:22:52 · 591 阅读 · 0 评论 -
后缀树的构造方法-Ukkonen详解
http://blog.163.com/lazy_p/blog/static/13510721620108139476816/ 最近在学习后缀树的构造,在网上找了好久发觉国内详解它的构造的文章胜少,在苦苦寻觅了许久,终于发现了一个网友翻译的一篇文章,很好,于是我转帖出来,希望能有更多的人受益,也希望国内多一些英文高手多翻译一些国外的技术文章,好让我们这些英文很烂的人受益,呵呵! 后缀树转载 2013-03-01 21:15:04 · 580 阅读 · 0 评论 -
图的存储
http://blog.chinaunix.net/uid-26833883-id-3167659.html 图的存储结构 图的存储结构除了要存储图中各个顶点的本身信息外,同时还要存储顶点与顶点之间的所有关系(边的信息),因此,图的结构比较复杂,很难以数据元素在存储区中的物理位置来表示元素之间的关系,但也正是由于其任意的特性,故物理表示方法很多。常用的图的存储结构有邻接矩阵、邻接表转载 2013-03-01 23:45:39 · 514 阅读 · 0 评论 -
复杂链表的复制
http://zhedahht.blog.163.com/blog/static/254111742010819104710337/ 题目:有一个复杂链表,其结点除了有一个m_pNext指针指向下一个结点外,还有一个m_pSibling指向链表中的任一结点或者NULL。其结点的C++定义如下: struct ComplexNode { int m转载 2013-03-07 20:54:39 · 654 阅读 · 0 评论 -
后缀树的具体应用
http://www.cppblog.com/superKiki/archive/2010/10/29/131786.aspx 在pongba的讨论组上看到一道Amazon的面试题:找出给定字符串里的最长回文。例子:输入XMADAMYX。则输出MADAM。这道题的流行解法是用后缀树(Suffix Tree)。这坨数据结构最酷的地方是用它能高效解决一大票复杂的字符串编程问题:转载 2013-03-06 20:44:30 · 3590 阅读 · 0 评论 -
hash_table和STL map
SOLUTION Compare and contrast Hash Table vs. STL map 在hash_table中value通过使用哈希函数产生的关键字来存储。因此在hash table中值不是以有序的方式来存储。此外,由于使用key找到下标来存储value,所以插入和查找能够在O(1)时间内完成。在hashtable中必须处理潜在的冲突。 In a hash table,翻译 2013-02-12 19:23:40 · 1663 阅读 · 0 评论 -
根据前序和中序序列重建二叉树
http://blog.chinaunix.net/uid-1844931-id-3033009.html 今天一个小朋友问到这个问题,顺便复习一下数据结构了。 PreOrder(T)=T的根节点+PreOrder(T的左子树)+PreOrder(T的右子树) InOrder(T)=InOrder(T的左子树)+T的根节点+InOrder(T的右子树) PostOrder(T)=P转载 2013-01-30 23:44:00 · 702 阅读 · 0 评论 -
二叉树非递归的后序前序中序遍历
实现思路:从根节点开始遍历二叉树,不为空时将节点压入栈中,直到最后一个非空节点。然后判断此节点的是否有右孩子,如果右孩子为空,那么输出节点数据。否则判断右孩子是否是之前遍历过的(用pre指针记录之前遍历过多的节点指针),如果是那么输出此节点,否则右孩子压入栈中。 具体代码: #include #include struct node{ char data; node *lchild转载 2013-01-15 20:01:42 · 554 阅读 · 0 评论 -
单链表的逆置
题目:一个有头结点的单链表,如何将其逆置。 首先定义一个结构体: typedef int DataType; typedef struct node{ DataType data; struct node*next; }; 分析:首先考虑一般情况,设置三个指针,分别表示目前,之前,之后位置。pcur,ppre,pnext的节点。逆置时,将pcur的next指针指向ppre,然原创 2013-01-14 22:57:25 · 668 阅读 · 0 评论 -
找出数组中下一个大数
给出一整数数组,找出比当前元素大的下一个数。 Array on integer is given find out next bigger number Ex {2,5,3,4,6,1} Out: 2->5 5->6 3->4 4->6 6->-1 //not possible 1-> -1 //not possible 算法时间和空间复杂度都为O(n)翻译 2013-03-16 20:29:09 · 968 阅读 · 0 评论
分享