您好、欢迎来到现金彩票网!
当前位置:刘伯温高手心水论坛1 > 推导树 >

目前最详细的红黑树原理分析(大量图片+过程推导!!!)

发布时间:2019-06-26 21:49 来源:未知 编辑:admin

  我们知道ALV树是一种严格按照定义来实现的平衡二叉查找树,所以它查找的效率非常稳定,为O(log n),由于其严格按照左右子树高度差不大于1的规则,插入和删除操作中需要大量且复杂的操作来保持ALV树的平衡(左旋和右旋),因此ALV树适用于大量查询,少量插入和删除的场景中

  那么假设现在假设有这样一种场景:大量查询,大量插入和删除,现在使用ALV树就不太合适了,因为ALV树大量的插入和删除会非常耗时间,那么我们是否可以降低ALV树对平衡性的要求从而达到快速的插入和删除呢?

  答案肯定是有的,红黑树这种数据结构就应运而生了(因为ALV树是高度平衡的,所以查找起来肯定比红黑树快,但是红黑树在插入和删除方面的性能就远远不是ALV树所能比的了)

  红黑树是一种特殊的二叉查找树,每个结点都要储存位表示结点的颜色,或红或黑

  5)从任意一个结点出发到空的叶子结点经过的黑结点个数相同(比如下图中80到任意一个空叶子结点经过的黑结点都是3)

  示意图:(红黑树首先是一颗搜索树,所以左子树点小于根结点,右子树大于根节点,等于根结点的按照自己的需要放左边和右边都是可以的)(红黑树不仅是一颗搜索树还是一颗非严格的平衡树)

  现在有个问题:红黑树是怎么通过上面5条性质保证任意结点到空的叶子结点的所有路径中,没有一条路径会大于其他路径的两倍的呢?(换句话说就是它是如何确保任何一个结点的左右子树的高度差不会超过二者中较低那个的一倍的呢?)

  红黑树的基本操作是添加和删除,在对红黑树进行添加和删除之后,都会用到旋转方法,为什么呢?道理很简单,因为添加或者删除红黑树中的结点之后,红黑树就发生了变化,可能不满足上面的5条性质了,这个时候就需要通过旋转操作来保证它依旧是一棵红黑树,旋转分为左旋和右旋

  左旋是将X的右子树绕X逆时针旋转,使得X的右子树成为X的父亲,同时修改相关结点的引用,旋转之后,要求二叉查找树的属性依然满足

  右旋是将X的左子树绕X顺时针旋转,使得X的左子树成为X的父亲,同时注意修改相关结点的引用,旋转之后要求仍然满足搜索树的属性

  添加操作宏观过程:首先将红黑树当作一颗查找树一样将结点插入,然后将结点着为红色,最后通过旋转和重新着色的方法使之重新成为红黑树

  1)不违背红黑树的性质5:从任意一个结点出发到空叶子结点,经过的黑色结点个数相同

  2)按照红黑树的性质4我们知道红黑树中黑结点的个数至少是红结点个数的两倍,所以新增结点的父亲结点是黑结点的概率比较大,如果新增结点的父节点为黑色,那么此时不需要再去进行任何调整操作,因此效率很高,所以新结点应该涂成红色

  现在我们来分析一下新增的结点(红色)插入之后可能面临的几种情况,以及他们的处理措施

  然后又将爷爷结点当作插入结点看待,一直进行上面的操作,直到当前结点为根结点,然后将根结点变成黑色

  现在125结点和130结点都是红色的,显然违背了规则4,所以将新插入结点的父亲130结点和插入结点的叔叔结点150变成黑色,并将新插入结点的爷爷结点140变成红色,图如下:

  然后又将140结点当作新插入结点处理(因为140结点和新插入结点面临的情况都是一样的:和父亲结点都是红色),也就是做如下处理:将140结点的父亲结点120和140的叔叔结点60变成黑色结点,将140结点的爷爷结点变成红色,因为遍历到了根结点,要满足根结点是黑色的性质要求,所以又将140的爷爷结点也就是根结点变成黑色,图如下:

  到这里,为新插入结点125所做的某些结点重新着色的操作就完成了,现在该树是标准的红黑树了!

  2)父亲结点为爷爷结点的右孩子,新插入结点为父亲结点的右孩子(右右情况)

  比如下图,新插入结点为25,其父亲结点30为红色,其叔叔结点为空黑色叶子结点,且新插入结点和其父节点都是左孩子:

  我们将其父亲结点和爷爷结点颜色互换,然后针对爷爷结点进行一次左旋,图如下:

  我们发现上述两条到叶子结点的路径经过的黑色结点数量不一样!!!,所以它不满足红黑树的第5条性质,所以这就是我们旋转的意义所在!!!(因为无论你这么旋转都没有改变结点颜色,改变的是结点的位置,而这位置改变刚好能使得树满足红黑树的第5条性质!)

  比如下图,新插入结点是126,其父结点125为红色,其叔叔结点为空的黑色结点,而且插入结点是右结点,父结点是左结点

  现在我们的当前结点是125,现在125的处境和上面的情况4是一样的(父节点为红,叔叔结点为黑,插入结点为左结点,父亲结点也为左孩子)现在我们继续按照情况4的处理办法处理上述情况(措施和情况4一样,父亲结点和爷爷结点互换颜色,然后针对爷爷结点进行左旋),处理后情况如下:

  将叔叔和父亲结点改为黑色,爷爷结点改为红色,未完,然后又将爷爷结点当作插入结点看待,一直进行上

  3.2.1 (父亲结点为左孩子,插入结点也为左孩子)(父亲结点为右孩子,插入结点也为右孩子)

  3.2.2 (父亲结点为左孩子,插入结点为右孩子)(父亲结点为右孩子,插入结点为左孩子)

  针对父结点进行左旋,此时左旋后的情况必定是3.2.1的情况,然后按照3.2.1的情况处理

  1.爷爷结点为红色结点的情况下,父亲结点只能为黑色(红黑树的性质4),处理操作:上面情况2

  2.爷爷结点为黑色的情况下,父亲结点和叔叔结点:可以为红色,也可以为黑色

  2.4.1 父亲结点为左孩子,叔叔结点为左孩子:处理操作:上面情况3.2.1

  2.4.2 父亲结点为右孩子,叔叔结点为右孩子:处理操作:上面情况3.2.1

  2.4.3 父亲结点为左孩子,插入结点为右孩子:处理操作:上面情况3.2.2

  2.4.4 父亲结点为右孩子,插入结点为左孩子:处理操作:上面情况3.2.2

  先说一个删除结点的过程原理:首先将红黑树当作一个二叉查找树,将该结点从二叉查找树种删除,然后通过一些列重新着色操作等一系列措施来修正该树,使之重新成为一颗红黑树

  1)删除结点为黑色,其唯一的儿子结点为红色(必定是红色,要不然不符合红黑树的第5条性质)

  2)删除结点为红色,其儿子结点只能为黑:红黑树中不存在这种情况,要不然无法满足红黑树第5条性质

  这种情况下其兄弟结点也肯定是黑色的(要满足红黑树第5条性质),假设现在要删除的是150这个结点,原图如下:

  先删除结点150,然后将兄弟结点126变成红色,父亲结点140变成黑色,结果如下:

  这样做的目的是为了满足红黑树的第5条性质,要不然根到最右边的叶子结点经过的黑色结点只有3个,而其他路径有4个

  3)删除结点为黑色,其兄弟结点有一个孩子不空,并且该孩子和兄弟结点在同一边(同为左子树或者同为右子树)

  假设现在要删除的结点为110,其兄弟结点140只有一个孩子150,而且都是右子树,满足上述条件,原图如下:

  先把需要删除的结点110删除,然后这个时候需要交换兄弟结点140和父亲结点120的颜色,并且把父亲结点120涂成黑色,把兄弟结点的子节点150涂成黑色

  4)删除结点为黑色,其兄弟结点有一个孩子不空,并且该孩子和兄弟结点不在同一边(右左或者左右的情况)

  (这种情况下,兄弟结点的儿子50结点只能为红色,要不然满足不了红黑树的第5条性质)

  假设我们现在要删除的结点是80结点,其兄弟结点只有一个儿子,而且兄弟结点和兄弟结点的儿子是左右的情况(兄弟结点为左结点,兄弟结点的儿子为右结点),符合上述要求,原图如下:

  现在我们先将需要删除的80结点删除,然后将兄弟结点和兄弟结点的儿子结点颜色互换

  注意!!,现在还没有结束变换,我们发现变换之后的红黑树情况和情况3中的情况很相似,兄弟结点50和兄弟结点的子节点30处在同一边,我们可以按照情况3的处理办法进行处理:

  交换兄弟结点50和父亲结点60的颜色,把父亲结点60和兄弟结点的子节点30涂成黑色

  5)删除结点为黑色,其兄弟结点有两个孩子,兄弟结点为黑色而且两个孩子结点也为黑色

  现在我们假设要删除的结点是130结点,其兄弟结点有两个孩子(可以把空的叶子结点看成黑色的儿子结点),而且兄弟结点和兄弟结点的儿子结点都是黑色,符合上述情况,原图如下:

  先直接删除需要删除的结点130,然后将父亲结点140和兄弟结点150颜色互换即可,结果如下:

  假设我们要删除的结点是110,其兄弟结点140为红色而且有两个孩子,原图如下:

  上图的情况是第一种情况,所以我们对父亲结点140进行左旋,按照上面操作之后(未完),结果如下:

  我们发现完成上述操作之后树还不是一个标准的红黑树(到叶子结点的一条路径黑色结点只有3个,而其他的路径有4个),我们发现现在红黑树的情况又和情况5的很像,所以我们按照情况5的做法继续:

  我们要需要删除的结点还没有被删除(我特意留到最后删除的,就是为了在这里表示父亲结点是谁的父亲结点...),现在我们将父亲结点120和兄弟结点130的颜色互换即可,结果如下:

  3)删除结点为黑色,其兄弟结点有一个孩子不空,并且该孩子和兄弟结点在同一边(同为左子树或者同为右子树):

  1.不管是括号中那种情况,先交换兄弟结点和父亲结点的颜色,并且把父亲结点和兄弟结点的子结点涂成黑色

  4)删除结点为黑色,其兄弟结点有一个孩子不空,并且该孩子和兄弟结点不在同一边(右左或者左右的情况):

  2.1如果兄弟结点是左子树,兄弟结点的儿子结点是右子树:对兄弟结点进行左旋

  2.2如果兄弟结点是右子树,兄弟结点的儿子结点是左子树:对兄弟结点进行右旋

  5)删除结点为黑色,其兄弟结点有两个孩子,兄弟结点为黑色而且两个孩子结点也为黑色:

  比如我们要删除的结点是120结点,删除结点为黑色,唯一的儿子结点130为红色(必须是红色,不然违背红黑树第5条性质)原图如下:

  我们将需要删除的结点120删除,然后将子节点130涂黑放到被删除结点120的位置,结果如下:

  2)删除结点为红色:其儿子结点只能为黑,红黑树中不存在这种情况,要不然无法满足红黑树第5条性质

  找到删除结点的右子树中最左的结点,两两值交换,然后删除结点的情况就变成了上面两种情况中的一种了

  假设要删除的结点是120,先找到结点120右子树中最左的结点125,交换两者的值,图如下:

  现在120仍然是要删除的结点,我们发现删除结点120没有一个儿子,而且其兄弟结点也没有儿子,那么其对应的情况为:

  所以当删除结点右两个儿子结点的时候,我们只需要按照搜索二叉树的删除方法替换删除值,这样就可以将情况变成删除结点没有儿子结点或者1个儿子结点的情况处理了

  1.什么是红黑树我们知道一棵高度为h的二叉搜索树的大部分操作时间复杂度是O(h),但是如果搜索树较高,极端情况下就是一条链表了,二叉搜索的意义就不大了。而红黑树是一颗二叉搜索树,也是多种平衡搜索树的一...博文来自:lm2009200的博客

  为什么MyISAM会比Innodb的查询速度快。MyISAM和innodb的实现上的区别?业务上区别很多ODB在做SELECT的时候,要维护的东西比MYISAM引擎多很多:1)数据块,INNO...博文来自:fei33423的专栏

  未经授权,不得私自转载,否则追究法律责任联系作者取得授权转载请注明作者和出处网上很多红黑树的讲解都没有分析清楚插入删除各种情况是怎么来的,他们大多把分析图画的很复杂,说到...博文来自:FRcheng的专栏

  1.软间隔的提出上一篇文章(手推SVM(二)-核方法)我们用核方法来解决线性不可分问题,但如果即使映射到高维空间中,仍然有部分点不能完美的区分开呢?如图,无论核函数怎么选取,都不能完美区分开数据,即使...博文来自:多元思考力

  序言红黑树是一种应用十分广泛的平衡二叉搜索树。大部分语言和库中TreeMap的实现都是使用红黑树,还有Linux、Nginx等也使用了红黑树。但是红黑树也是一种非常复杂的数据结构,为了保持平衡,在修改...博文来自:那些零零散散的算法

  前言   红黑树,对不少人来说是个比较头疼的名字,在网上搜资料也很少有讲清楚其演变来源的,多数一上来就给你来五条定义,红啊黑啊与根节点距离相等之类的,然后就开始进行旋转、插入、删除这些操作。一通操作下...博文来自:GitHub地址:

  学习链接:文章一(入门级):文章二(专业性更强):博文来自:剑雨巍巍的博客

  傅里叶变换的性质中,重点关注的就是时移,频移,奇偶虚实性,下面给出了详细的推导。1、欢迎大家关注我的微信公众号:xiaoshi_IC,小石谈IC;2、2018年4月建号以来,已陆续完成了PCB系列的培...博文来自:集成电路设计那些事儿

  红黑树红黑树(英语:Red–blacktree)是一种自平衡二叉查找树,是在计算机科学中用到的一种数据结构,典型的用途是实现关联数组。它是在1972年由鲁道夫·贝尔发明的,他称之为对称二叉B树,它...博文来自:LeetCode8023的博客

  查找(一)我们使用符号表这个词来描述一张抽象的表格,我们会将信息(值)存储在其中,然后按照指定的键来搜索并获取这些信息。键和值的具体意义取决于不同的应用。符号表中可能会保存很多键和很多信息,因此实现一...博文来自:菜鸟的自留地-mooyang

  红黑树的概述:红黑树本质上是一种二叉查找树,但它在二叉查找树的基础上额外添加了一个标记(颜色),同时具有一定的规则。这些规则使红黑树保证了一种平衡,插入、删除、查找的最坏时间复杂度都为O(logn)。...博文来自:暗星涌动

  在大量数据中常用的查找数据的做法有四类:顺序查找,二分查找,二叉树查找(BST),红黑树查找(RBT)。这四类查找方法分别对应着四种基本思想原理:顺序查找——无序简单查找二分查找——有序查找,每次折半...博文来自:QuinnNorris的博客

  针对Boosting的基本介绍在我的这篇文章中详细介绍了简单总结Boosting:初始对每...博文来自:blank_tj的博客

  对数几率回归(logisticregression),有时候会译为逻辑回归(音译),其实是我们把回归模型应用到分类问题时,线性回归的一种变形,主要是针对二分类提出的。既然是线性回归的一种变形,那么在理...博文来自:的博客

  本篇是在之前的学习插入时的补充篇幅。目标时从头图化出一个完整的红黑树的构造过程。理论参考构建过程中随机生成一个数字作为红黑树的域。Case场景分为两种,一种是CaseA1,2,3系列,一种是CaseB...博文来自:lwgzj的博客

  红黑树有一条性质要求:如果一个节点为红色的,则它的两个子节点都是黑色。这保证了:从根到叶节点(不包括根节点)的任何一条路径上都至少有一半的节点是黑色的。(红黑树的性质还要求:对每一个节点,从该节点到其...博文来自:Zhangs Wikipedia

  最近学习线性回归,自己推导了一下最小二乘法。 其他参考文章:博文来自:夜深人静后的码农

  逻辑回归处理的是分类问题,具体来说,是处理二分类问题。为了实现逻辑回归分类器,我们可以在线性回归的基础上(即每个特征乘以一个回归系数后相加),添加一个sigmoid函数,进而得到一个范围在0-1之间的...博文来自:Flying_sfeng的博客

  红黑树是一种自平衡的二叉查找树它具有以下5个性质:1、节点颜色必须是红色或者黑色2、根节点是黑色3、每个叶子节点(NIL节点、空节点)是黑色的4、每个红色节点的两个子节点都是黑色5、从任一节点到每个叶...博文来自:Lyt的博客

  如果要学红黑树,那么就必须知道二叉树,毕竟红黑树本身就是一个二叉搜索树。只不过红黑树比一般的二叉搜索树更加稳定,也就是更加平衡,但是有没有AVL树那么的稳定,这换来的是红黑树比AVL数有更好的插入和删...博文来自:早就戒了的博客

  引言反向传播算法(Backpropagation)是目前用来训练人工神经网络最常用且最有效的算法。1986年,Hinton,深度学习之父,和他的合作者发表了论文,首次系统地描述了如何利用BP算法有训练...博文来自:以道御术

  3二叉树的推导3.1由前序中序推导已知一棵二叉树的前序序列和中序序列,构造该二叉树的过程如下:Ø根据前序序列的第一个元素建立根结点;Ø在中序序列中找到该元素,确定根结点的左右子树的中序序列;Ø在前序序...博文来自:zfireear的博客

  红黑树是60年代中期计算机科学界找寻一种算法复杂度稳定,容易实现的数据存储算法的产物。在优先级队列、字典等实用领域都有广泛地应用,更是70年代提出的关系数据库模型--B树的鼻祖。在Linuxkerne...博文来自:无敌的专栏

  在前几篇笔记中,我们推导了傅里叶级数相关公式,这次的笔记将进行傅里叶变换的推导傅里叶变换的核心思想是:将任意非周期函数看作周期无限长的周期函数,因此可以调用傅里叶级数的相关公式我们不妨设f(t)f(t...博文来自:一个球的博客

  网上看到的最小二乘法都是互相抄来抄去,一错一大片,连标点符号都错的一样,其实整个推导过程并不是很难的一件事,只需要简单的一步步按照最小化Error就可以得到,对于新手来说这些答案误导性比较强。$$$$...博文来自:洗脚看电视的博客

  说明:本博客引自博客:;并对此博客中有些地方的推导的过程进行详细地说明。同时,...博文来自:vinsuan93的专栏

  考虑时空中的一条直线,选定一个原点,代表AB两点在时空中重叠事件。A,B两点相对以速度u相对匀速运动。该运动的时空图可以用二维仿射空间表示,对任意质点建立自己在时空中建立仿射坐标系。下面分别建立分别相...博文来自:数学民工

  上一篇讲了插入调整,现在来讲删除调整。红黑树的删除无疑是最难的,抛开调整,红黑树的插入删除都跟选择二叉树一样,所以前面的步骤网上很多了,在这里只讲如何调整,以满足红黑树性质。    还是从头到...博文来自:anliayx的博客

  转自点击打开链接查找(一)我们使用符号表这个词来描述一张抽象的表格,我们会将信息(值)存储在其中,然后按照指定的键来搜索并获取这些信息。键和值的具体意义取决于不同的应用。符号表中可能会保存很多键和很多...博文来自:工工工工工工藤、的博客

  1.红黑树  红黑树本身也是一种二叉树,只不过是一种比较特殊的二叉树  二叉树如果插入的数值是有序时,二叉树就是非平衡的,基本跟链表类似了(时间复杂度O(N))  针对这种情况,就产生了红黑树,这种树...博文来自:恐龙弟旺仔的博客

  本篇是在之前的学习删除时的补充篇幅。目标时从头图化出一个完整的红黑树的删除过程。理论参考随意构造了一个红黑树如下:图1-1:删除514:这种场景最简单,因为被删除节点没有子节点。删除11(满足Case...博文来自:lwgzj的博客

  引言:   目前国内图书市场上,抑或网上讲解红黑树的资料层次不齐,混乱不清,没有一个完整而统一的阐述。而本人的红黑树系列四篇文章(详见文末的参考文献),虽然从头至尾,讲的有根有据,层次清晰,然距离读者...博文来自:的博客

  1.SVM模型——基本模型是特征空间上的间隔最大的线性分类器,使用核技巧使它成为非线性分类器——SVM学习策略是间隔最大化,可形式化成一个求解凸二次规划的问题——SVM等价于正则化的合页损失函数(hi...博文来自:夏鼎的博客

  尊重原创,转载请标明出处   在分析源代码之前,最好要标注出处,因为在Java中和Android中同一个类可能代码就会不一样,甚至在A...博文来自:山大王的专栏

  关键词:间隔最大化、无约束优化问题、有约束优化问题、凸函数、仿射函数、凸二次规划问题、希尔伯特空间、拉格朗日乘子法、拉格朗日对偶函数、KKT条件研究思路支持向量机(supportvectormachi...博文来自:李威威的博客

  看了很多材料,关于红黑树的删除,大概所有的总结都大同小异,今天先聊聊对红黑树删除的情况分析:红黑树的删除操作1:节点命名约定D表示要被删除的节点。即:取Delete的首字母;P表示父节点。即:取Par...博文来自:窗外阴天的博客

  IAP升级功能编写初期的一些困惑与疑问---完成功能后的总结 一,网上下载的例程,跳转部分的代码有差异,尤其是用的汇编那句 二,关于跳转部分的代码的理解(转) 三,关于跳转时能否不用按键,用软件标志位...博文来自:Super_Demo的专栏

  现在的Win7系统中安装的一般都是32位的Office,因为微软推荐使用32位的Office,兼容性更强,稳定性更好。在使用Access作为数据库的时候,C#操作Access,如果Access是acc...博文来自:写代码的蜗牛

  转载请注明出处:     在上一篇blog中介绍过POI检索的使用,本篇blog主要介绍公交信息检索和线路规划的内容。 公交信息检索     实际上,公交信息检索与POI检索、在线建议检索非常相似,也...

  Java中的ThreadLocal类允许我们创建只能被同一个线程读写的变量。因此,如果一段代码含有一个ThreadLocal变量的引用,即使两个线程同时执行这段代码,它们也无法访问到对方的Thread...

  u011860731的专栏C#实现开发windows服务实现自动从FTP服务器下载文件(自行设置分/时执行)

  最近在做一个每天定点从FTP自动下载节目.xml并更新到数据库的功能。首先想到用 FileSystemWatcher来监控下载到某个目录中的文件是否发生改变,如果改变就执行相应的操作,然后用timer...

  摘要 最近要发论文了,被知乎里人推荐使用论文编译软件(CTex、LaTex和Overleaf之类),瞬间感觉自己用Word简直Out了(书读少)。 学校里也听说过LaTex,不过因为当时没怎么写过...

  看到很多朋友配置vsftpd时不能使用匿名用户上传和下载(创建目录或删除、重命名文件夹),本文主要解决vsftpd的匿名用户权限配制问题。...

  一个例子高斯混合模型(Gaussian Mixed Model)指的是多个高斯分布函数的线性组合,理论上GMM可以拟合出任意类型的分布,通常用于解决同一集合下的数据包含多个不同的分布的情况(或者是同一...

  最近比较有空,大四出来实习几个月了,作为实习狗的我,被叫去研究Docker了,汗汗! Docker的三大核心概念:镜像、容器、仓库 镜像:类似虚拟机的镜像、用俗话说就是安装文件。 容器:类似一个轻量...

  我走小路的博客将Excel文件导入数据库(POI+Excel+MySQL+jsp页面导入)第一次优化

  本篇文章是根据我的上篇博客,给出的改进版,由于时间有限,仅做了一个简单的优化。相关文章:将excel导入数据库2018年4月1日,新增下载地址链接:点击打开源码下载地址十分抱歉,这个链接地址没有在这篇...

  Http协议的重要性相信不用我多说了,HttpClient相比传统JDK自带的URLConnection,增加了易用性和灵活性(具体区别,日后我们再讨论),它不仅是客户端发送Http请求变得容易,而且...

  klkxxy的博客三菱FX系列PLC与PC通讯的实现之专有协议(计算机联接)的程序设计之一

  阅读内容为:FX系列微型可编程控制器用户手册(通讯篇)中计算机链接功能章节。 采用本方法通信,pc端的实现,其实就是,把操作按照协议(2种)翻译成相应的字符串,通过串口发送给plc。 编写一应用程...

  强连通分量: 简言之 就是找环(每条边只走一次,两两可达) 孤立的一个点也是一个连通分量   使用tarjan算法 在嵌套的多个环中优先得到最大环( 最小环就是每个孤立点)   定义: int Ti...

  u013268685的专栏(有一种幸福叫AC,有一种期待叫AK)简单linux字符设备驱动程序与编程小技巧(上)

  这几天开始研究linux下的驱动程序编写了,遇到的问题也挺多的,好在linux是开源的,很多高人编写的技巧和思路都会在他们的源代码中体现,我也在他们的源码中学到了很多好东西,我归纳了下贴出来,希望自己...

  苹果充值的刷单现象在游戏行业非常普遍,很多团队挖空心思寻找漏洞以非法获利。常见的手段主要有以下六种: 伪造充值凭据(receipt)以小额凭据骗取大额商品 凭据重复使用 凭据重复使用信用卡黑卡/...

  分享知识、分享进步jquery/js实现一个网页同时调用多个倒计时(最新的)

  jquery/js实现一个网页同时调用多个倒计时(最新的) 最近需要网页添加多个倒计时. 查阅网络,基本上都是千遍一律的不好用. 自己按需写了个.希望对大家有用. 有用请赞一个哦! //js ...

  一、代理模式为某个对象提供一个代理,从而控制这个代理的访问。代理类和委托类具有共同的父类或父接口,这样在任何使用委托类对象的地方都可以使用代理类对象替代。代理类负责请求的预处理、过滤、将请求分配给委托...

  如下图所示,蜂窝小区,以1为中心,顺时针编号,编号最大限定为100000。求任意两编号之间的最短距离。两个相邻小区的距离为1 示例:19到30的最短距离为5 实现如下三个接口: /**********...

  NYS001的专栏魔兽争霸3冰封王座1.24e 多开联机补丁 信息发布与收集点

  在MATLAB中,可以注释一段程序。 使用“%{”和“%}”。 例如 %{ 。。。 %} 即可。 经典方法是用 if 0,但缺点是不够直观,注释掉的内容仍然保持代码的颜色。现在可以用 ...

http://ivansolano.com/tuidaoshu/246.html
锟斤拷锟斤拷锟斤拷QQ微锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷微锟斤拷
关于我们|联系我们|版权声明|网站地图|
Copyright © 2002-2019 现金彩票 版权所有