
数据结构
文章平均质量分 93
surpassLiang
视野决定效率
展开
-
LZW编码与解码的那点事
1. 前言在前面一片文章TIFF文件结构详解里,我们在解析TIF文件中,提到使用了LZW算法。那么LZW算法是什么呢?就让我们揭开它的神秘面纱。2. 什么是LZWLZW算法又叫“串表压缩算法”就是通过建立一个字符串表,用较短的代码来表示较长的字符串来实现压缩。 LZW压缩算法是Unisys的专利,有效期到2003年,所以对它的使用已经没有限制了。字符串和编码的对应关系是在压缩过程中动态生成的,并且隐含在压缩数据中,解压的时候根据表来进行恢复,算是一种无损压缩。这里涉及到对应关系表,最开始会有一个单个字原创 2021-12-05 13:47:11 · 2401 阅读 · 0 评论 -
基于栈实现通过Oracle的PRIOR关键字查询结果组装java层级结构对象
1.需求描述对于数据库设计中,对于层级结构的设计一般使用parentId对于Id的引用实现。令我们愉悦的是,Oracle还提供了关键字PRIOR查询树状结构的语句。下面是对于多级菜单的层级结构查询的Sql语句。具体语法大家可以自行学习,这里不对此做过多的解释。SELECT ID, NVL(TO_CHAR(PARENT_ID), 'NULL') PARENT_ID, ...原创 2020-04-11 17:50:47 · 450 阅读 · 0 评论 -
大话布隆过滤器及其应用场景
1.前言今天看博客,有这么一篇文章,他以一道面试题引出了布隆过滤器的概念。这道题大致意思是这样的:假设现在有1000瓶水,其中有一瓶有毒,只要喝一滴,过30天就会毒发身亡。问最少需要多少只小白鼠可以找到有毒的那瓶水,当然是要求30天找到。不然我可以用一只小白鼠实验30*1000=30000天(大约82年)[想想好多人连30000天都活不了,不谈这个伤心的话题了]。那么这个问题怎么解决呢?这里就...原创 2020-03-31 21:50:25 · 4090 阅读 · 1 评论 -
图解数据结构之红黑树的那点事
1.前言最近在研究java的HashMap源码,涉及到红黑树的数据结构,看着很是恼火、费劲,所以还是需要先学习一下红黑树,在看源码效果会好点。本篇文章主要是利用一些实例图解了一些简单的过程。同时也是对学习的一些记录。方便以后温习用。2.2-3树的插入顺序在看红黑树之前,我们必须先明白什么是2-3树,这对于红黑树的理解有很重要的作用,同时也会对理解B类树也有很大帮助。下面图解的方式演示了...原创 2019-12-22 19:45:58 · 288 阅读 · 0 评论 -
利用基于栈结构的逆波兰表达式实现四则运算
1.涉及概念1.1 栈栈是一种操作受限的线性表,即只允许从一端插入和删除数据,他的存储方式分为线性存储和链接存储。栈的一个最重要的特征就是栈的插入和删除只能在栈顶进行,所以每次删除的元素都是最后进栈的元素,故栈也被称为后进先出(LIFO)表。栈主要有两种操作,分为入栈(push)和出栈(pop)。由于只操作栈顶元素,所以此操作的复杂度为O(1)。1.2逆波兰表达式逆波兰表达式又叫...原创 2019-12-21 14:49:30 · 414 阅读 · 0 评论