- 博客(8)
- 资源 (1)
- 收藏
- 关注
原创 Huffman的应用之文件压缩与解压缩
文件压缩与解压缩> 最近这段时间一直在学习树的这种数据结构,也接触到了Huffman树以及了解了什仫是Huffman编码,而我们常用的zip压缩也是利用的Huffman编码的特性,那仫是不是可以自己实现一个文件压缩呢?当然可以了.在文件压缩中我实现了Huffman树和建堆Heap的代码,下面开始介绍思路... 1).统计>读取一个文件统计这个文件中字符出现的次数.
2016-10-30 12:02:28 4644
原创 红黑树
红黑树> 在之前实现了AVL树,其实红黑树和AVL树都是高效且平衡的二叉搜索树,增删查改的时间复杂度都是O(lg N).但是在实际应用中红黑树的应用最多,比如C++STL库--map/set,java库,Linux内核以及其他的一些库里都用到了红黑树,这是因为红黑树是不追求完全平衡的是一种近似平衡的二叉树,保证最长路径不超过最短路径的二倍,相对于AVL树来说降低了旋转的要求,所以性能会优
2016-10-28 13:30:22 898
原创 排序算法之堆排序
堆排序> 在上一篇中提到了大小堆的问题,大小堆的一个应用就是堆排序,那仫什仫是堆排序呢?相对于我们经常使用的冒泡,选择以及直接插入排序,堆排序又存在什仫样不同的地方?我就从这几个问题开始着手解决堆排序的问题. 堆排序顾名思义就是利用堆(假设利用小堆)进行排序的方法,它的基本思想是:先将待排序的序列构成一个小堆,在这个时候堆顶结点就是整个系列的最小值;然后将堆顶元素与堆数组末尾的
2016-10-12 10:03:24 529
原创 数据结构之大小堆&&优先级队列
大小堆>一.什仫是堆? 堆这种数据结构说白了就是一颗完全二叉树,堆的含义说明这颗完全二叉树中的所有非终端结点的值均不大于(或不小于)其左,右孩子结点的值.若一维数组{k1,k2,k3,k4...kn}是堆,则堆顶元素必为序列中n个元素的最小值(或最大值) 最大堆:每个父结点的值都大于其孩子结点. 最小堆:每个父结点的值都小于其孩子结点.二.如何利用一维数
2016-10-11 19:34:10 1287
原创 数据结构之线索二叉树的前序,中序和后序遍历
BinaryTree线索化二叉树 二叉树是一种非线性结构,在之前实现的二叉树遍历中不管是递归还是非递归用二叉树作为存储结构时只能取到该结点的左孩子和右孩子,不能得到该结点的前驱和后继。为了保存这种在遍历中需要的信息,同时也为了充分利用结点中的空指针域,我们利用二叉树中指向左右子树的空指针来存放结点的前驱和后继.同时在有n个结点的二叉链表中必定存在n+1个空链域. 那仫问题来
2016-10-09 19:24:15 18325 7
计算机网络的一点使用技巧
2016-08-09
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人