数据结构
harvey77
这个作者很懒,什么都没留下…
展开
-
二叉树的恢复
最近笔面老碰上这类题,老忘,因此写个备忘。二叉树的三种遍历常用于恢复:先序,中序,后序。对于先+中,后+中这两种组合,对任意二叉树的恢复都有唯一解,但对先+后的情况则不是,这种情况下要满足要求:对所有非叶节点,其两个子节点都存在,也即,一个节点要么是叶节点,要么有两个节点。典型的恢复方法是递归建构节点的左,右子树。一个一个看:假设二叉树原型如下,为了方便,节点的值刚好等于层次遍历索转载 2013-04-08 15:18:57 · 629 阅读 · 0 评论 -
Java Hashtable分析
Hashtable的结构,采用的是数据结构中所说的链地址法处理冲突的方法 从上面的结构图可以看出,Hashtable的实质就是一个数组+链表。图中的Entry就是链表的实现,Entry的结构中包含了对自己的另一个实例的引用next,用以指向另外一个Entry。而图中标有数字的部分是一个Entry数组,数字就是这个Entry数组的index。那么往 Hashtable增加键值对的时候,in转载 2013-04-08 15:40:03 · 406 阅读 · 0 评论 -
KMP算法详解(转)
引记 此前一天,一位MS的朋友邀我一起去与他讨论快速排序,红黑树,字典树,B树、后缀树,包括KMP算法,唯独在讲解KMP算法的时候,言语磕磕碰碰,我想,原因有二:1、博客内的东西不常回顾,忘了不少;2、便是我对KMP算法的理解还不够彻底,自不用说讲解自如,运用自如了。所以,特再写本篇文章。由于此前,个人已经写过关于KMP算法的两篇文章,所以,本文名为:KMP算法之总结篇。 本文分转载 2013-04-16 10:25:49 · 404 阅读 · 0 评论 -
AC自动机
AC自动机简介: 首先简要介绍一下AC自动机:Aho-Corasick automation,该算法在1975年产生于贝尔实验室,是著名的多模匹配算法之一。一个常见的例子就是给出n个单词,再给出一段包含m个字符的文章,让你找出有多少个单词在文章里出现过。要搞懂AC自动机,先得有字典树Trie和KMP模式匹配算法的基础知识。KMP算法是单模式串的字符匹配算法,AC自动机是多模式串的字符匹配算法。转载 2013-04-16 10:20:52 · 433 阅读 · 0 评论 -
递归函数时间复杂度分析
(1) 递归执行过程 例子:求N!。 这是一个简单的"累乘"问题,用递归算法也能解决。 n! = n * (n - 1)! n > 1 0! = 1, 1! = 1 n = 0,1 因此,递归算法如下: Java代码 fact(int n) { if(n == 0 || n == 1)转载 2013-08-15 15:16:56 · 414 阅读 · 0 评论