数据结构
九州殊口二
这个作者很懒,什么都没留下…
展开
-
BFS模板
搜索只是用来遍历连通图的,或许只是解决问题的一部分,还是要具体问题具体分析。 模板一 /** * Return the length of the shortest path between root and target node. */ int BFS(Node root, Node target) { Queue<Node> queue; // store all...原创 2019-03-30 20:36:36 · 1128 阅读 · 0 评论 -
打开转盘锁
题干 示例 1: 输入:deadends = [“0201”,“0101”,“0102”,“1212”,“2002”], target = “0202” 输出:6 解释: 可能的移动序列为 “0000” -> “1000” -> “1100” -> “1200” -> “1201” -> “1202” -> “0202”。 注意 “0000” -> “00...原创 2019-03-31 11:58:41 · 416 阅读 · 0 评论 -
DFS模板
在大多数情况下,我们在能使用 BFS 时也可以使用 DFS。但是有一个重要的区别:遍历顺序。 与 BFS 不同,更早访问的结点可能不是更靠近根结点的结点。因此,你在 DFS 中找到的第一条路径可能不是最短路径。 模板-递归 /* * Return true if there is a path from cur to target. */ boolean DFS(Node cur, Node ...原创 2019-04-05 20:48:36 · 607 阅读 · 0 评论 -
栈-Java
Stack派生于Vector,所以说不如用Vector 初始化一个空栈 Stack<E> s = new Stack<>(); 常用方法 public boolean empty() 测试此堆栈是否为空。 public E peek() 查看此堆栈顶部的对象,而不从堆栈中删除它。 public E pop() 删除此堆栈顶部的对象,并将该对象作为此函数的值返...原创 2019-04-01 16:14:00 · 97 阅读 · 0 评论 -
逆波兰表达式求值
题干 根据逆波兰表示法,求表达式的值。 有效的运算符包括 +, -, *, /。每个运算对象可以是整数,也可以是另一个逆波兰表达式。 说明: 整数除法只保留整数部分。 给定逆波兰表达式总是有效的。换句话说,表达式总会得出有效数值且不存在除数为 0 的情况。 示例 1: 输入: ["2", "1", "+", "3", "*"] 输出: 9 解释: ((2 + 1) * 3) = 9 示例 2: ...原创 2019-04-02 10:41:09 · 143 阅读 · 0 评论 -
数据结构-队列-Java实现
** 1.队列 ** 在Java中实现一个队列最简单的办法是使用ArrayList,但这不是我们经典的数据结构中的队列。 为了实现队列,我们可以使用动态数组和指向队列头部的索引。 如上所述,队列应支持两种操作:入队和出队。入队会向队列追加一个新元素,而出队会删除第一个元素。 所以我们需要一个索引来指出起点。 class MyQueue { // store elements pr...原创 2019-03-28 21:22:28 · 172 阅读 · 0 评论 -
迪杰斯特拉算法
源码 //数据结构 typedef struct VertexType//节点 { int index;//编号 string name; }; typedef int VRType; //顶点关系类型,有权图就为权值,无权就为0、1 typedef struct ArcCell { VRType adj =0 ; //权值 }AdjMatrix[MAX_NUM][MAX_NUM]; t...原创 2019-04-02 20:35:03 · 127 阅读 · 0 评论