随笔分类 -  常用数据结构

摘要:Trie ​ Trie,又称前缀树或字典树,用于判断字符串是否存在或者是否具有某种字符串前缀。Trie字典树主要用于存储字符串,Trie 的每个 Node 保存一个字符。用链表来描述的话,就是一个字符串就是一个链表。每个Node都保存了它的所有子节点。 ​ 也就是说如果只考虑小写的26个字母,那么T 阅读全文
posted @ 2021-04-09 10:38 有心有梦 阅读(388) 评论(0) 推荐(0)
摘要:LFU ​ LFU (Least frequently used) 最不经常使用,如果一个数据在最近一段时间内使用次数很少,那么在将来一段时间内被使用的可能性也很小。实现一个LFU缓存结构需要实现如下功能: set(key, value):将记录(key, value)插入该结构 get(key): 阅读全文
posted @ 2021-04-07 13:27 有心有梦 阅读(218) 评论(0) 推荐(0)
摘要:图的遍历是指访问图中的每一个顶点,且只访问一次。最经典的遍历图的方法就是深度优先遍历和广度优先遍历,这两种遍历方法都会产生一个生成树。我们用程序来实现这两种遍历算法的时候,一定要认真分析它们的算法思想以及具体细节,因为遍历图的顶点,每个顶点只能访问一次,所以需要专门设置一个访问标记数组用于标记顶点是 阅读全文
posted @ 2020-06-13 23:44 有心有梦 阅读(234) 评论(0) 推荐(0)
摘要:为了方便的使用图这个数据结构,我们需要使用编程语言对其抽象的内容进行具体化,我们在设计一个复杂的数据结构的时候可以参考Java集合框架的特点,首先定义一个接口,包含的是图的所有的常用的公共的操作,然后定义一个抽象类来部分地实现这个接口,最后根据具体的使用情况定义具体的类实现抽象类。 图的常用操作: 阅读全文
posted @ 2020-06-13 22:31 有心有梦 阅读(232) 评论(0) 推荐(0)
摘要:图是一种基本的非线性数据结构,其相关基本概念介绍太多了,这里就不再重复说了。为了让自己能够复习的印象深刻一些,今天专门总结一些图的基本知识。 一、基本的知识点 图包含两个核心要素:顶点和边,一个图可以没有边,但不能没有顶点。 图分可以分为无向图和有向图,有向图就是在这个图中每一条边都有一个方向,表示 阅读全文
posted @ 2020-06-10 23:46 有心有梦 阅读(1084) 评论(0) 推荐(0)