![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构及算法
GarfieldGCat
这个作者很懒,什么都没留下…
展开
-
哈夫曼(Huffman)树及编码生成的解析
《算法之美》一书中对哈夫曼编码(Huffman Code)的实现,值得学习的地方有很多。 哈夫曼编码为变长编码,与传统的ASCII的8bit等长编码不同,该方式对常出现的字符使用更少的编码来表示。 在大部分情况下其压缩率良好,但编码和还原都需要大量的CPU时间,且还原需要获得一份哈夫曼编码表,jpeg格式中便使用了哈夫曼编码进行压缩。 该方法不会产生一个编码是另外一个编码的前缀码的情况,也就...原创 2018-07-09 21:38:57 · 1167 阅读 · 0 评论 -
解题报告 [codevs]1336 广播操的烦恼
解题报告 1336 广播操的烦恼时间限制: 1 s空间限制: 128000 KB题目等级 : 青铜 Bronze题目链接题目描述 Description刚进我们的新学校~首先感受到了校园的样子与小学完全不同~来到了我们的机房,我也看到了几个同学~有的认识,有的不认识!(MHZ:废话! LCZ:现在流行说废话凑字数。 JHT:汗~)现在,为了让大家更熟悉,更容易交流,于是老师决定排座...原创 2019-07-23 16:18:05 · 222 阅读 · 0 评论 -
数据结构 平衡二叉树(AVL)
文章目录概述性质及定义AVL树的最大高度AVL树的存储结构AVL树的插入AVL树的旋转单旋(LL/RR Rotate)双旋(LR/RL Rotate)C语言实现概述二叉搜索树查找的最高效率类似于折半查找,但却十分依赖于树建立的顺序,如果一颗二叉搜索树的倾斜的,那么它的效率和顺序查找无二区别。只有左右平衡的二叉搜索树才能达到O(logn)O(\log n)O(logn)的查找效率。二叉搜索树...原创 2019-05-01 03:03:09 · 1065 阅读 · 0 评论 -
数据结构 二叉搜索树的删除
文章目录概述待删除的结点没有子树待删除的结点仅有一颗子树待删除的结点有两颗子树C代码实现概述这是一篇短文,专门考究一下二叉搜索树的删除。二叉搜索树的建立非常简单,如果不熟悉的见此文 树与二叉树。而删除则有数种情况:待删除的结点没有子树。待删除的结点仅有一颗子树。待删除的结点有两颗子树。下面逐一分析。待删除的结点没有子树如需删除下图中结点9:这是最简单的一种情况,它没有子...原创 2019-04-30 17:44:10 · 4280 阅读 · 2 评论 -
数据结构 树与二叉树
文章目录概述术语树(Tree)的定义二叉树(Binary Tree)特殊形态完全二叉树(Complete Binary Tree)的性质满二叉树(Full Binary Tree)的性质二叉树的性质二叉树的存储结构顺序存储链式存储C实现二叉树的遍历C实现概述树是非常重要的非线性结构,在该结构中,一个数据元素可以有两个或以上的直接后继元素,树广泛用于描述客观世界中大量存在的层次结构关系。其中,...原创 2019-04-25 02:50:53 · 387 阅读 · 0 评论 -
数据结构 广义表基础
文章目录概述定义一些例子广义表的特点存储结构概述广义表(Generalized List),又简称作表(Lists),注意与普通列表不同,是复数的List。广义表是线性表的推广,与线性表最大的不同在于,线性表规定其中的元素是原子项,而广义表允许其中的元素自身含有结构。定义广义表是由n(n≥0)n(n \geq 0)n(n≥0)个元素a0,a1,…,an−1a_0, a_1, \dots, ...原创 2019-04-23 18:11:41 · 572 阅读 · 0 评论 -
数据结构 矩阵基础
文章目录概述特殊矩阵稀疏矩阵概述矩阵是很多工程领域都需要的数学对象,在数据结构中主要讨论的是如何高效的存储矩阵的元(即矩阵中的元素)。比如在矩阵的实际应用中,经常出现很多高阶矩阵存在很多相同元素或是0,为了节省空间就可以对其进行压缩,即多元素共享一个存储单元、不对0分配存储单元等。假如值相同的元素或者零元素在矩阵中分布有一定规律,则称此类矩阵为特殊矩阵;反之则成为稀疏矩阵。下面分别看一下它...原创 2019-04-23 16:34:04 · 743 阅读 · 0 评论 -
数据结构 串(字符串)与KMP
文章目录概述、定义抽象数据类型(ADT, Abstract Data Type)模式匹配KMP算法MP算法KMP算法对MP算法的改进C 实现概述、定义串(字符串,String)是由零个或多个字符组成的序列,也是一种特殊线性表,一般记为S=′a1a2…an′(n≥0)S = 'a_1 a_2 \dots a_n' (n \geq 0)S=′a1a2…...原创 2019-04-22 23:26:23 · 385 阅读 · 0 评论 -
数据结构 栈与队列
文章目录概述栈(Stack)定义基本运算存储结构C实现队列(Queue)定义基本运算存储结构C实现概述栈和队列都是非常常用的结构,它们与线性表逻辑相同,但特点在于运算存在限制。队列按照 先进先出(FIFO, First In First Out) 的原则,即最先放入队列的元素最先退出;栈按照 后进先出(LIFO, Last In First Out) 的原则,即最后放入队列的元素最先退出;...原创 2019-04-21 21:19:31 · 441 阅读 · 0 评论 -
数据结构 线性表
文章目录概述定义线性表的顺序存储线性表的链式存储C语言实现顺序存储链式存储概述线性表是最常用、最简单的数据结构,其主要的特点就是元素间呈现线性关系,即“一个接一个的排列”。一般采用顺序或链式存储。定义一个线性表是n(n≥0)n(n \geq 0)n(n≥0)个元素的有限序列,通常表示为a1,a2,…,ana_1, a_2, \dots, a_na1,a2,…,an,其定义如下:存...原创 2019-04-20 20:17:54 · 764 阅读 · 0 评论 -
解题报告 [codevs]1385 挤牛奶
USACO时间限制: 1 s空间限制: 128000 KB题目等级 : 青铜 Bronze题目链接题目描述 Description三个农民每天清晨5点起床,然后去牛棚给3头牛挤奶。第一个农民在300时刻(从5点开始计时,秒为单位)给他的牛挤奶,一直到1000时刻。第二个农民在700时刻开始,在 1200时刻结束。第三个农民在1500时刻开始2100时刻结束。期间最长的至少有一个农民在...原创 2019-07-25 01:19:09 · 368 阅读 · 0 评论