图也是一种 非线性结构,是由多个顶点组成的关系集合组成的一种数据结构。图可以分为两种,无向图和有向图。★图的定义:★典型问题: 利用图能够解决很多问题,这里有一个较为典型的问题,假如已知有n个人和m对好友关系(存于数字r)。如果两个人是直接或者间接的好友(即就是好友的好友...
B树属于多叉树,也称多路平衡树。有些地方也将B树称为'B-树',这里‘-’不表示减号。■B树的主要性质: (1)根节点至少有两个孩子。
红黑树又称二叉搜索树,它主要是通过红和黑两种颜色(red、black)来标识节点。通过对任何一条从根节点到叶子节点路径上的节点颜色进行约束,红黑树保证最长路径不超过最短路径的两倍,所以说:红黑树是近似于平衡的。■下面是红黑树的主要特点: &nb
AVL是平衡搜索二叉树,它的主要特点在于:(1)左子树和右子树的高度差绝对值<1,(2)树中的每个子树都是AVL树,(3)每个节点都有一个平衡因子(-1、0、1),平衡因子的大小等于右子树的高度减左子树的高度 下面就是一个AVL树:其中,这个树满足左
‘二叉树’是数据结构中比较重要的一部分,这里主要讨论一下‘搜索二叉树’,针对‘搜索二叉树的插入、删除和查找节点进行分情况讨论,希望能够帮助读者更加的理解搜索二叉树的原理。◆搜索二叉树的性质: 1.每个节点都有一个一个作为搜索依据的关键码,所有节点的关键码都不相同。&n
布隆过滤器是一种能够在大量数据中判断数据是否存在的算法。它实际上是一个很长的二进制向量和一系列随机映射函数。布隆过滤器可以用于检索一个元素是否在一个集合中。它的优点是空间效率和查询时间都远远超过一般的算法,缺点是有一定的误识别率和删除困难。在介绍‘布隆过滤器’之前,先介绍一下‘位图’的思想:  
在上一篇博客中,主要是实现各种的排序算法,并针对一些算法进行了优化的处理,下面主要讨论一下非比较排序的算法(计数排序、基数排序),同时并对各种排序算法的性能、时间复杂度、空间复杂度、优缺点、以及适用场景做总结分析。1.计数排序 &nb
数据结构中的排序算法分为比较排序,非比较排序。比较排序有插入排序、选择排序、交换排序、归并排序,非比较排序有计数排序、基数排序。下面是排序的具体分类:1.直接排序 主要思想:使用两个指针,让一个指针从开始,另一个指针指向前一个指针的+1位置,
二叉树的遍历运算是将二叉树中节点按一定规律线性化的过程,当二叉链表作为存储结构时,只能找到节点的左、右孩子信息,而不能直接得到节点在遍历序列中的前驱和后继信息。线索化二叉树能够解决这样的问题,将二叉链表中的空指针域填上相应节点的遍历前驱或后继节点的地址
“二叉树”作为特殊的树,适合于计算机处理,所以二叉树是研究的重点。我们通常将满足下列的条件称为二叉树,每个节点的度都不大于2,每个节点的孩子节点次序不能任意颠倒。也就是说,一个二叉树中的每个节点只能含有0,1或2个孩子,而且每个孩子有左右孩子之分,位于左边的孩子称为左孩子,位于右边的孩子称为右孩子。说
广义表 广义表是一种非线性的数据结构,是一种较为简单的数据结构,是线性表的扩展,是一个由n个元素组成的序列。实现广义表主要是利用递归,将其分为子问题来进行解决。下面是一些常见类型的广义表:1)A = ();
栈与队列的应用 在“栈与队列的应用(上)”中,通过讨论两个队列实现一个栈和两个栈实现一个队列这两个问题,我们对栈和队列也有了更深的了解,下面我们主要来讨论以下两个面试中常常会遇到的问题:1)一个数组实现两个栈2)实现一个栈,能够push、pop、min(求栈中最小的数据)问题一:
栈和队列的应用 ”栈和队列“这方面的面试题是挺多的,栈和队列之间的应用也是面试中常常会见到的问题,下面我们就来讨论以下的这两个问题:1)两个栈实现一个队列2)两个队列实现一个栈问题一: 栈最主要的特点就是“先进后出”,而队列的特点是“先进先出”。那么我们应该怎样用两个栈实现一个队
判断出栈顺序的合法性 ”栈“是一种限制性线性表,是将线性表的插入、删除操作限制为仅在表的一端进行,一般将能够插入、删除的一端称为栈顶,表的另一端称为栈底。当栈中没有元素时称为空栈。即就是将每次进栈的元素放在栈顶元素之上而称为新的栈顶,而每次出栈的是当前栈中“最新”的元素。因此就需要对一些出栈顺序的合法性进行判断。这个
&n
"迷宫问题(栈)" “栈”是一种简单的数据结构,它的主要特点就是"先进后出",即就是先压入栈中的数据需要最后出栈。相当于栈是一个杯子,最先放进栈中的东西,只能够最后拿出来。下面对“栈”的特点用图形象的表示出来。  
Copyright © 2005-2025 51CTO.COM 版权所有 京ICP证060544号