
数据结构与算法
小萨摩
这个作者很懒,什么都没留下…
展开
-
数据结构之散列表
散列表(Hash table,也叫哈希表),是根据关键码值(Key value)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做散列函数,存放记录的数组叫做散列表。为什么需要散列表?如果忽略内存,我们将键作为数组的索引,那么所有的查找查找操作只需要访问一次内存即可。当键很多时,这需要太大的内存。散列的主要目的...原创 2019-03-02 10:13:48 · 394 阅读 · 0 评论 -
数据结构之符号表及其实现(Map)
符号表主要就是用来将一个键和一个值联系起来。定义:符号表是一种存储键值对的数据结构,支持两种操作:插入(put),即将一组新的键值对存入表中;查找(get),即根据给定的键得到相应的值。在实现前,我们遵循以下规则:每个键只对应一个值; 当向表中存入的键值对和表中的已有的键冲突时,新的值会替代旧的值。 键不能为空 值不能为空无序链表,java实现:import jav...原创 2019-02-25 21:24:19 · 1420 阅读 · 1 评论 -
数据结构之二叉查找树
定义:二叉查找树(Binary Search Tree),(又:二叉搜索树,二叉排序树)它或者是一棵空树,或者是具有下列性质的二叉树: 若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值; 若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值; 它的左、右子树也分别为二叉排序树。如图就是一颗二叉查找树:根节点为8,根节点的左子树都比8小,根节点的右子树都比8大。...原创 2019-02-26 19:02:00 · 303 阅读 · 0 评论 -
数据结构之字典树 Trie 单词查找树
参照算法第4版,强烈建议看书上的实现步骤,这里只是一个个人记录。单词查找树的性能:查找命中所需的时间与被查找的键的长度成正比。比如单词有7个字符,查找或插入操作最多只需要检查8个节点。 查找未命中只需检查若干个字符。 所需空间:在RN~RNw之间,其中R为字母表大小,N为键的个数,w为平均单词长度。import java.util.LinkedList;import jav...原创 2019-02-21 16:56:22 · 382 阅读 · 0 评论