数据结构
文章平均质量分 84
ttyue_123
这个作者很懒,什么都没留下…
展开
-
迷宫问题(栈)
"迷宫问题(栈)" “栈”是一种简单的数据结构,它的主要特点就是"先进后出",即就是先压入栈中的数据需要最后出栈。相当于栈是一个杯子,最先放进栈中的东西,只能够最后拿出来。下面对“栈”的特点用图形象的表示出来。 650) this.width=650;" width="570" height="263" title="无标题.png" style="width:361px原创 2016-08-09 21:42:55 · 461 阅读 · 0 评论 -
图—并查集(解决朋友圈问题)
图也是一种 非线性结构,是由多个顶点组成的关系集合组成的一种数据结构。图可以分为两种,无向图和有向图。★图的定义:650) this.width=650;" width="525" height="243" title="无标题.png" style="width:525px;height:235px;" src="http://s2.51cto.com/wyfs02/M01/84/8B/wKio原创 2016-08-09 21:44:06 · 3013 阅读 · 0 评论 -
多路平衡树—BTree(B树)
B树属于多叉树,也称多路平衡树。有些地方也将B树称为'B-树',这里‘-’不表示减号。■B树的主要性质: (1)根节点至少有两个孩子。 (2)每个非根节点为[[M/2], M]个孩子,这里[M/2]表示向上取整。 (3)每个非根节点都有[[M/2], M-1]个关键字,并且以升序排列。 (4)K原创 2016-08-09 21:44:03 · 667 阅读 · 0 评论 -
二叉搜索树—RBTree(红黑树)
红黑树又称二叉搜索树,它主要是通过红和黑两种颜色(red、black)来标识节点。通过对任何一条从根节点到叶子节点路径上的节点颜色进行约束,红黑树保证最长路径不超过最短路径的两倍,所以说:红黑树是近似于平衡的。■下面是红黑树的主要特点: (1)红黑树的根节点是黑色的。 (2)红黑树中若一个节点是红色的,则它的两个子节点必须是黑色的。 (3)红黑树中从该节点原创 2016-08-09 21:44:00 · 397 阅读 · 0 评论 -
平衡搜索树—AVLTree
AVL是平衡搜索二叉树,它的主要特点在于:(1)左子树和右子树的高度差绝对值 下面就是一个AVL树:650) this.width=650;" title="无标题.png" src="http://s5.51cto.com/wyfs02/M00/84/50/wKiom1eMsebCRlryAAAQLcWj2kc433.png" alt="wKiom1eMsebCRlryAAAQLcWj原创 2016-08-09 21:43:57 · 236 阅读 · 0 评论 -
数据结构--‘搜索二叉树’
‘二叉树’是数据结构中比较重要的一部分,这里主要讨论一下‘搜索二叉树’,针对‘搜索二叉树的插入、删除和查找节点进行分情况讨论,希望能够帮助读者更加的理解搜索二叉树的原理。◆搜索二叉树的性质: 1.每个节点都有一个一个作为搜索依据的关键码,所有节点的关键码都不相同。 2.左子树所有的关键码(key)都小于根节点的关键码(key)。 3.右子树所有的关键码(key)都原创 2016-08-09 21:43:54 · 327 阅读 · 0 评论 -
数据存在?-‘布隆过滤器’
布隆过滤器是一种能够在大量数据中判断数据是否存在的算法。它实际上是一个很长的二进制向量和一系列随机映射函数。布隆过滤器可以用于检索一个元素是否在一个集合中。它的优点是空间效率和查询时间都远远超过一般的算法,缺点是有一定的误识别率和删除困难。在介绍‘布隆过滤器’之前,先介绍一下‘位图’的思想: 这里有这样一个问题:给40亿个没有排序、不重复的无符号整数,如何快速的判断一个数据是否在这40原创 2016-08-09 21:43:32 · 345 阅读 · 0 评论 -
数据结构—各类‘排序算法’实现(下)
在上一篇博客中,主要是实现各种的排序算法,并针对一些算法进行了优化的处理,下面主要讨论一下非比较排序的算法(计数排序、基数排序),同时并对各种排序算法的性能、时间复杂度、空间复杂度、优缺点、以及适用场景做总结分析。1.计数排序 主要思想:主要是需要统计次数,使用直接定址法,统计最大数和最小数,开辟两个数相差的空间大小,对于重复数据,使用count用来计数,时间复杂度O(N+范围个数原创 2016-08-09 21:43:29 · 218 阅读 · 0 评论 -
数据结构—各类‘排序算法’实现(上)
数据结构中的排序算法分为比较排序,非比较排序。比较排序有插入排序、选择排序、交换排序、归并排序,非比较排序有计数排序、基数排序。下面是排序的具体分类:650) this.width=650;" width="651" height="364" title="无标题.png" style="width:651px;height:281px;" src="http://s4.51cto.com/wyf原创 2016-08-09 21:43:26 · 441 阅读 · 0 评论 -
线索化二叉树
二叉树的遍历运算是将二叉树中节点按一定规律线性化的过程,当二叉链表作为存储结构时,只能找到节点的左、右孩子信息,而不能直接得到节点在遍历序列中的前驱和后继信息。线索化二叉树能够解决这样的问题,将二叉链表中的空指针域填上相应节点的遍历前驱或后继节点的地址,而前驱和后继的地址只能在动态的遍历过程中才能得到。可以按照不同的遍历次序进行线索化,先序遍历、遍历过程中的节点的前驱、后继信息保存下来。下面是线索原创 2016-08-09 21:43:18 · 233 阅读 · 0 评论 -
数据结构--二叉树
“二叉树”作为特殊的树,适合于计算机处理,所以二叉树是研究的重点。我们通常将满足下列的条件称为二叉树,每个节点的度都不大于2,每个节点的孩子节点次序不能任意颠倒。也就是说,一个二叉树中的每个节点只能含有0,1或2个孩子,而且每个孩子有左右孩子之分,位于左边的孩子称为左孩子,位于右边的孩子称为右孩子。说到二叉树:就需要提到“满二叉树”和“完全二叉树”。 满二叉树:在满二叉树中,每层节点原创 2016-08-09 21:43:15 · 245 阅读 · 0 评论 -
广义表(非线性结构)
广义表 广义表是一种非线性的数据结构,是一种较为简单的数据结构,是线性表的扩展,是一个由n个元素组成的序列。实现广义表主要是利用递归,将其分为子问题来进行解决。下面是一些常见类型的广义表:1)A = (); 常称为“空表”2)B = (a,b); 一般的广义表3)C = (a, b, (c, d)) 具有子表的广义表4)D = (a原创 2016-08-09 21:43:12 · 3258 阅读 · 0 评论 -
面试题——栈与队列的应用(下)
栈与队列的应用 在“栈与队列的应用(上)”中,通过讨论两个队列实现一个栈和两个栈实现一个队列这两个问题,我们对栈和队列也有了更深的了解,下面我们主要来讨论以下两个面试中常常会遇到的问题:1)一个数组实现两个栈2)实现一个栈,能够push、pop、min(求栈中最小的数据)问题一: 对于一个数组,我们如何能够使其成为两个栈?根据数组和栈的特点,我们不难发现可以将数组的两端作为栈原创 2016-08-09 21:43:09 · 423 阅读 · 0 评论 -
面试题——栈与队列的应用(上)
栈和队列的应用 ”栈和队列“这方面的面试题是挺多的,栈和队列之间的应用也是面试中常常会见到的问题,下面我们就来讨论以下的这两个问题:1)两个栈实现一个队列2)两个队列实现一个栈问题一: 栈最主要的特点就是“先进后出”,而队列的特点是“先进先出”。那么我们应该怎样用两个栈实现一个队列?给定两个栈s1和s2,s1只用于插入数据,当s2和s1中都没有数据时,则队列为空。若s1中有数据原创 2016-08-09 21:43:04 · 494 阅读 · 0 评论 -
判断出栈顺序的合法性(面试题)
判断出栈顺序的合法性 ”栈“是一种限制性线性表,是将线性表的插入、删除操作限制为仅在表的一端进行,一般将能够插入、删除的一端称为栈顶,表的另一端称为栈底。当栈中没有元素时称为空栈。即就是将每次进栈的元素放在栈顶元素之上而称为新的栈顶,而每次出栈的是当前栈中“最新”的元素。因此就需要对一些出栈顺序的合法性进行判断。这个也是面试会经常问到的问题。◆主要思路: 首先,需要一个栈s,原创 2016-08-09 21:43:01 · 1697 阅读 · 0 评论 -
对称矩阵、稀疏矩阵的压缩存储
对称矩阵、稀疏矩阵的压缩存储1)对称矩阵的压缩存储 对称矩阵顾名思义就是符合行和列的个数相同,并且矩阵中存储的数据上三角和下三角中对应位置上的元素值是相等的。为了能够减少存储的空间,我们可以只存储上三角矩阵、或者下三角矩阵中的元素,这样就能够极大地节省空间的浪费。下面是对称矩阵的示列:650) this.width=650;" title="无标题.png" src="http://s原创 2016-08-09 21:42:58 · 888 阅读 · 0 评论 -
文件压缩(小项目)
Huffman树,又称为最优二叉树,是加权路径最短的二叉树。Huffman树的构建利用到贪心算法。【贪心算法】 贪心算法是指在问题求解时,总是做出当前最好的选择,也就是说贪心算法做出的不一定是全局的最优解,但是某种意义上的局部最优解。贪心算法不一定能够求得整体的最优解。使用贪心算法构建哈夫曼树:/*主要原理:将每个字符与哈夫曼编码相对应原创 2016-08-10 16:43:22 · 527 阅读 · 0 评论