原文:说说红黑树——不谈操作,只讲理解

一 前言 这几天想学一学红黑树这种数据结构,于是上网找了很多篇博客,初看吓了一跳,红黑树竟然如此复杂。连续看了几篇博客后,算是对红黑树有了一些了解,但是它的原理却并不是特别理解。网上的博客,千篇一律的都是在叙述红黑树的操作,如何插入节点 删除节点,旋转 变色等,只关注如何正确构建一棵红黑树,但是却很少提及为什么这么做。这篇博客我就来记录一些我所知道的红黑树中比较重要的东西,以及谈一谈我的理解。 我 ...

2020-03-24 02:39 1 579 推荐指数:

查看详情

关于旋转的理解

概述 的左旋和右旋比较费解,网上很多资料说的很复杂,这里我用望文生义的思维来解释左旋和右旋。可能对搜索资料的网友有帮助。 二叉查找的定义 二叉查找是一棵空,或者是具有下列性质的二叉树:1、若左子树不空,则左子树上所有节点的值均小于它的根节点的值;2、若右子树不空,则右子树上所有 ...

Sun Sep 15 04:05:00 CST 2019 2 1792
的本质出发,彻底理解

前言 早上好,我是彤哥。 上一节,我们一起从二叉树、二叉查找、平衡、AVL、2-3、2-3-4、B,一路讲到,最后得出的本质:就是2-3-4,请看下图: 我们知道2-3-4的插入、删除、查找元素的原理是相当简单的,那么,我们是不是可以利用2-3-4来记忆 ...

Mon Oct 12 15:41:00 CST 2020 1 1295
了解的起源,理解的本质

前言 本文收录于专辑:http://dwz.win/HjK,点击解锁更多数据结构与算法的知识。 你好,我是彤哥。 前面两节,我们一起学习了关于跳表的理论知识,并手写了两种完全不同的实现 ...

Fri Sep 18 06:11:00 CST 2020 0 1082
删除操作

若被删除的结点有两个非叶子结点,那么可以转换为删除一个“替代点”的问题,该替代点最多只有一个非叶子孩子结点。可以通过前驱或者后继(都最多有一个非叶子孩子结点)来替代最初要被删除的结点,所以下面关注只有一个非叶子孩子结点的问题,一旦我们解决了这个问题,那么解决方法将同样适用于两种情形:1、原本 ...

Tue Jan 19 07:34:00 CST 2016 2 1368
删除操作

查阅了很多的资料,最终把的删除操作弄明白。为方便日后温习,也为那些正想弄明白但又苦苦明白不了该操作详细原理的同学查阅,特将其当笔记记录下来。下面内容是个人所理解的删除操作,如果有不对的地方,欢迎各路大神指正。 的删除操作 1:节点命名约定 D表示要被 ...

Thu May 05 17:36:00 CST 2016 21 12562
通过2-3-4理解

code[class*="language-"], pre[class*="language-"] { background-color: #fdfdfd; -webkit-box-sizi ...

Thu Jan 04 03:39:00 CST 2018 5 4279
通过2-3理解

操作维护了一棵平衡的二分搜索。本章节我们继续梳理一个高阶的树结构即:。想必大家都知道,如 ...

Fri Aug 30 06:15:00 CST 2019 4 1814
对AVL的个人理解

都说编程算法很重要,可真没见几个.NET程序员研究算法的。这些日子非主流地研究了一些小算法,和AVL算是其中复杂的了,但实际也就二三百行代码。悲催的是,网上根本找不到C#的理想版本(包括国外网站),寥寥几个,要么有错,要么非主流的实现方式。 所谓主流方式,就是用表二叉排序树 ...

Thu Jun 07 00:25:00 CST 2012 4 16800
 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM