随笔分类 - 数据结构
摘要:文件压缩与解压:霍夫曼编码 由于计算机的存储空间,文件传输时间成本等条件的限制,产生了对文件进行压缩从而减少文件大小的需求,各种压缩算法及其技术应运而生。其中的霍夫曼编码作为无损压缩当中最好的方法,受到了广泛的应用。 霍夫曼编码(Huffman Coding): 霍夫曼编码是一种无损压缩算法,于1952年由Divid A. Huffman在其博士论文《A Method for the Construction of Minimum-Redundancy Codes》提出。基本原理是利用二进制位代替原先字符进行存储,减少文件计算机存储的总位数从而减少文件的大小。下面用一个实例来说明其原理。...
阅读全文
摘要:左旋转字符串 题目描述: 对一个字符串,例如"abcdefgh", 要求对前三个字符即"abc"进行左转,生成型如"defghabc"结果的字符串。(m: 要左转字符个数; n:原字符长度) 要求: 时间复杂度为O(n), 空间复杂度为O(1). 下面介绍解决该问题的三种方法: 1.暴力位移法 很容易想到的一种方法就是将要左转的子字符串存储在另外一个数值(或指针)中,再利用循环将剩下的字符逐个向左移动直到数值头部为止,最后将左移的子字符串复制到原字符串的尾部. 该方法需要额外的m个存储空间,字符左移时间复杂度为O(n-m), 左移子字
阅读全文
摘要:排序二叉树 二叉树:作为基本数据结构的一种,是红黑树,B树等树形结构的基础。而排序二叉树是按照二叉树的结构来组织的。在本文中采用链表结构来创建二叉树。排序二叉树的 基本原理: 排序二叉树是将归并排序的基本思想构建二叉树结构,再用中序遍历的规则来遍历树的各个节点,输出的结果就是有序序列(本文是将一组无序的整型数值存储在二叉树中,通过中序遍历二叉树将数值输入,而得到一组按照由小到大排序的序列,从而间接实现了排序。所以下文的解释和说明都以此为例)。 插入节点的过程: 1.判断根节点是否为空?如果为空,插入节点作为根节点,结束;否则,转2; 2.将要插入的数值和比较...
阅读全文

浙公网安备 33010602011771号