
数据结构与算法
HeinSven
发表,是对技术最好的记忆。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
字典树分析
1、基本概念 字典树,也称为单词查找树,Tire树,是一种树形结构,哈希树的变种。 2、基本性质 (1)根结点不包含字符,除根结点外的每个子节点都含一个字符。 (2)从根结点到某一结点。路径上经过的字符连接起来,就是该结点对应的字符串。 (3)每个结点的所有子节点包含的字符都不相同。 3、应用场景 典型应用是用于统计,排序和保存大量的字符串(不仅限于字符串),经常被搜索引擎系统用...原创 2019-02-12 17:40:38 · 203 阅读 · 0 评论 -
中缀表达式转换为后缀表达式
算法思想: (1)定义队列,保存后缀表达式。 (2)定义栈,暂存优先级由低到高的运算符。 (3)遍历中缀表达式,若是数字或小数点,则用len计数。若遇到运算符,则使用Arrays,copyOfRange(charArr,i-len,i)截取数字,保存至队列中。若遍历到的当前元素是(,则压入栈中。 (4)处理堆栈。若遍历到的当前元素是),则出栈所有元素放进队列中,直至遇到( 。若遍历到的当前...原创 2019-04-03 14:57:11 · 257 阅读 · 0 评论 -
排序
快速排序: public class QuickSort { public static void quickSort(int[] arr, int low, int high) { int i, j, temp, t; if (low > high) { return; } i = low...原创 2019-06-18 10:18:25 · 175 阅读 · 0 评论 -
深度优先和广度优先搜索
public class Search { public class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null; public TreeNode(int val) { this.val = val; ...原创 2019-06-26 21:59:08 · 174 阅读 · 0 评论 -
Java优先队列
PriorityQueue基于优先级堆。 若没有提供比较器,则使用Collection的自然顺序来排序元素。 PriorityQueue的iterator()不保证,以任何特定顺序,遍历队列元素。 contains() 线性时间 peek()、element()、size() 常量时间 offer()、poll()、remove() O(log(n)) off...原创 2019-07-25 11:19:45 · 466 阅读 · 1 评论 -
矩阵压缩存储
三对角矩阵: 非零元素,有|i-j|≤1,其余位置均为0 其中元素总数为:2+3*(n-2)+2+1=3n-2+1 定义一个一维数组B[3n-2],则ai,j在B中的位置为k(注意k从0开始) 则在ai,j之前的元素个数为 第1行:2 第2行:3 第3行:3 ... 第i-1行:3 第i行:j-i+1 则k=2+3*(i-2)+j-i+1=2i+j-3 若已知k,则ai...原创 2019-08-27 19:46:24 · 447 阅读 · 0 评论 -
二叉树非递归遍历
public class BiTreeTraversal { static class TreeNode { int val; TreeNode left; TreeNode right; } //先序遍历 void preOrder(TreeNode root) { if (root == nu...原创 2019-08-27 21:46:01 · 277 阅读 · 2 评论