摘要:  有限状态自动机是一种特殊的状态机。它表示有限个状态以及在这些状态之间的转移和动作等行为的数学模型。有限状态自动机分为 两种 ,一种是 确定有限状态自动机(DFA) ,一种是 非确定有限状态自动机(NFA) 。需要知道的是,对于每一种NFA都可转换为同样识别能力的DFA。 &e 阅读全文
posted @ 2018-06-11 23:02 林学徒 阅读 (109) 评论 (0) 编辑
摘要:堆树的相关知识点 阅读全文
posted @ 2018-06-11 09:40 林学徒 阅读 (370) 评论 (0) 编辑
摘要:伸展树的知识点总结以及实现 阅读全文
posted @ 2018-06-10 10:13 林学徒 阅读 (91) 评论 (0) 编辑
摘要:  单词查找树,又称前缀树或字典树,是一种有序树,用于保存关联数组,其中的键通常是字符串。Trie可以看作是一个确定有限状态自动机(DFA)。与二叉查找树不同,键不是直接保存在节点中,而是由节点在树中的位置决定。一个节点的所有子孙都有相同的前缀,也就是这个节点对应的字符串,而根节 阅读全文
posted @ 2018-06-07 13:17 林学徒 阅读 (94) 评论 (0) 编辑
摘要:  跳表(SkipList)是一种随机化的数据结构,目前在redis和leveldb中都有用到它,它的效率和红黑树以及 AVL 树不相上下,但跳表的原理相当简单,只要你能熟练操作链表, 就能轻松实现一个 SkipList。 考虑一个有序表: 从该有序表中搜索元素 ,需要比较的次数 阅读全文
posted @ 2018-06-06 22:34 林学徒 阅读 (36) 评论 (0) 编辑
摘要:  红黑树由AVL树改进而来,红黑树与AVL都是平衡结构的树。对于AVL树,其每次插入操作都需要从根节点处开始判断该树是否失去平衡,从而做出相应的调整。且其调整过程较为麻烦,每次都需要判断其左右两棵子AVL树的深度情况。相对于红黑树,其将关注点从AVL树的左右两棵子树的深度的失衡 阅读全文
posted @ 2018-06-05 08:47 林学徒 阅读 (54) 评论 (0) 编辑
摘要:  常用的图的存储结构主要有两种,一种是采用数组链表(邻接表)的方式,一种是采用邻接矩阵的方式。当然,图也可以采用十字链表或者边集数组的方式来进行表示,但由于不常用,为此,本博文不对其进行介绍。 邻接矩阵   邻接矩阵采用一个n n的二维数组来进行表示(假设该 阅读全文
posted @ 2018-06-04 10:50 林学徒 阅读 (100) 评论 (0) 编辑
摘要:问题:如何得到链表中的倒数第k个元素?   一种简单的思路是遍历链表一遍,并统计出链表中节点的数目,然后计算出倒数第k个元素到链表头节点的元素的距离,然后得到对应的结果。但是,我们能否有一种更加简便的方式来得到倒数的第k个元素的结果呢?答案肯定有啦,不然我也不会总结成博文了... 阅读全文
posted @ 2018-06-02 15:31 林学徒 阅读 (27) 评论 (0) 编辑
摘要:问题:如何得到一个链表的中间元素?   相信,这个问题对于刚入门编程的人来说,都不会难,最自然而然的想法是先遍历一遍链表,统计链表中的元素的个数,之后,再走一遍链表,所走的步长为链表长度的一半。这样就能获得链表的中间元素的值。但是,我们能不能有一种方法是只走一遍链表便得到结果的呢 阅读全文
posted @ 2018-06-02 14:32 林学徒 阅读 (39) 评论 (0) 编辑
摘要:问题:如何判断一个单向链表中是否存在环? 例如: 解题思路:   从一个实际的生活场景出发,两个人,在一个环形的操场上跑步的时候,如果有一个人跑得比另一个人还要快,那么,在n圈之后,这两个人总会在操场上的某个点相遇。将操场类比于链表中存在的环路径,将两个人看成两个指针,那么这道题 阅读全文
posted @ 2018-06-02 14:01 林学徒 阅读 (40) 评论 (0) 编辑