随笔分类 - 数据结构
摘要: 有限状态自动机是一种特殊的状态机。它表示有限个状态以及在这些状态之间的转移和动作等行为的数学模型。有限状态自动机分为 两种 ,一种是 确定有限状态自动机(DFA) ,一种是 非确定有限状态自动机(NFA) 。需要知道的是,对于每一种NFA都可转换为同样识别能力的DFA。 &e
阅读全文
摘要: 单词查找树,又称前缀树或字典树,是一种有序树,用于保存关联数组,其中的键通常是字符串。Trie可以看作是一个确定有限状态自动机(DFA)。与二叉查找树不同,键不是直接保存在节点中,而是由节点在树中的位置决定。一个节点的所有子孙都有相同的前缀,也就是这个节点对应的字符串,而根节
阅读全文
摘要: 跳表(SkipList)是一种随机化的数据结构,目前在redis和leveldb中都有用到它,它的效率和红黑树以及 AVL 树不相上下,但跳表的原理相当简单,只要你能熟练操作链表, 就能轻松实现一个 SkipList。 考虑一个有序表: 从该有序表中搜索元素 ,需要比较的次数
阅读全文
摘要: 红黑树由AVL树改进而来,红黑树与AVL都是平衡结构的树。对于AVL树,其每次插入操作都需要从根节点处开始判断该树是否失去平衡,从而做出相应的调整。且其调整过程较为麻烦,每次都需要判断其左右两棵子AVL树的深度情况。相对于红黑树,其将关注点从AVL树的左右两棵子树的深度的失衡
阅读全文
摘要: 常用的图的存储结构主要有两种,一种是采用数组链表(邻接表)的方式,一种是采用邻接矩阵的方式。当然,图也可以采用十字链表或者边集数组的方式来进行表示,但由于不常用,为此,本博文不对其进行介绍。 邻接矩阵 邻接矩阵采用一个n n的二维数组来进行表示(假设该
阅读全文
摘要:本博文主要用于讲解Hash的应用场景 Hash主要应用于数据结构中和密码学中。 用于数据结构时,主要是为了提高查询的效率,这就对速度比较重视,对抗碰撞不太看中,只要保证hash均匀分布就可以。 在密码学中,hash算法的作用主要是用于消息摘要和签名,换句话说,它主要用于对整个消息的完整性进行校验。
阅读全文
摘要:相关介绍: 二叉查找树的查找效率与二叉树的形状有关,对于按给定序列建立的二叉排序树,若其左、右子树均匀分布,则查找过程类似于有序表的二分查找,时间复杂度变为O(log2n)。当若给定序列原来有序,则建立的二叉查找树就蜕化为单链表,其查找效率同顺序查找一样,时间复杂度为O(n)。因此,在构
阅读全文
摘要:相关介绍: 二叉查找树(英语:Binary Search Tree),也称二叉搜索树、有序二叉树(英语:ordered binary tree),排序二叉树(英语:sorted binary tree),二叉查找树相比于其他数据结构的优势在于查找、插入的时间复杂度较低。 二叉查找树的定义
阅读全文
摘要:相关介绍: 树形结构除了应用于查找和排序等操作时能调高效率,它在信息通讯领域也有着广泛的应用。哈弗曼(Huffman)树就是一种在编码技术方面得到广泛应用的二叉树,它同时也是一种最优二叉树。 哈弗曼树相关的的基本概念: 为了给出哈弗曼树的定义,从以下几个基本概念出发并进行描述
阅读全文
摘要:相关介绍: 二叉树是树的一种特殊形态,在二叉树中一个节点至多有左、右两个子节点,而在树中一个节点可以包含任意数目的子节点,对于森林,其是多棵树所组成的一个整体,树与树之间彼此相互独立,互不干扰,但其又是一个整体。树与二叉树之间、森林与二叉树之间可以相互的进行转换,且这种转换是一一对应的。
阅读全文
摘要:相关介绍: 二叉树是一种特殊的树,它的每个节点最多只有两棵子树,并且这两棵子树也是二叉树。由于二叉树中的两棵子树有左右之分,为此,二叉树是有序树。 二叉树的定义: 二叉树是由n(n =0)个节点所以构成的有限集合。当n=0时,这个集合为空,此时的二叉树为空树;当n 0时,这个
阅读全文
摘要:相关介绍: 树(英语:tree)是一种抽象数据类型(ADT)或是作这种抽象数据类型的数据结构,用来模拟具有树状结构性质的数据集合。它是由n(n 0)个有限节点组成的一个具有层次关系的集合。把它叫做“树”是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。树形结构中数据元素之间具
阅读全文
摘要:用于总结数据结构中常见的“树”相关的知识点,及其实现和应用
阅读全文
摘要:相关介绍: 并查集的相关算法,是我见过的,最为之有趣的算法之一。并查集是一种树型的数据结构,用于处理一些不相交集合(Disjoint Sets)的合并及查询问题。其相关的实现代码较为简短,实现思想也简单易懂,处理问题的效率也高,解决的问题范围也较广。 为了实现并查集的相关算法,我们规定将对象称之为触
阅读全文
摘要:相关介绍: 汉诺塔问题是一个通过隐式使用递归栈来进行实现的一个经典问题,该问题最早的发明人是法国数学家爱德华·卢卡斯。传说印度某间寺院有三根柱子,上串64个金盘。寺院里的僧侣依照一个古老的预言,以上述规则移动这些盘子;预言说当这些盘子移动完毕,世界就会灭亡。这个传说叫做梵天寺之塔问题(T
阅读全文
摘要:相关介绍: 该算法用于求得一个字符串形式的表达式的结果。例如,计算1+1+(3 1)\ 3 (21 20)/2所得的表达式的值,该算法利用了两个栈来计算表达式的值,为此,称为双栈法,其实现简单且易于理解。但其要求将我们平时所看到的表达式的模式转化为完全加括号的形式。如表达式,1+1+(3
阅读全文

浙公网安备 33010602011771号