数据结构:2-3树与红黑树

原创 2016年08月28日 21:28:46

2-3树之前没接触过,只是听说过红黑树,知道是平衡树的一种,在关注C++的STL里的set和map底层实现原理时第一次知道的,查了一下红黑树的资料,看的一通云里雾罩、不明所以。正好最近一个算法微信公众号里看了几篇讲数据结构的文章,先讲了2-3树,后讲了红黑树,一下子就明白了。

原来红黑树是2-3树德一种实现方式,2-3树是平衡树的一种概念和思路,目的是降低BST(平衡查找树)的插入后平衡化操作代价,但2-3树直接实现起来比较复杂,需要处理不同的节点类型,相比AVL查找树,2-3树多了一种节点类型,它有两个value和3个子女指针,子女指针指向由两个value分开的3个区间,然后定义一些列平衡化操作,使得在插入、删除时效率相比AVL树要高(只需修改和本节点相关的节点即可,而AVL要递归平衡化操作,在一些情况下可能会一直涉及到根节点)。

但2-3树插入操作造成的多次比较、拆分等也比较复杂,平衡操作有时会降低效率,作为改进的红黑树效率较高而且实现难度降低了很多。

分享一下这两篇文章,注意其代码实现是C#,没有指针哦。

2-3树

        浅谈算法和数据结构: 八 平衡查找树之2-3树

红黑树

        浅谈算法和数据结构: 九 平衡查找树之红黑树

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

平衡查找树——2-3查找树——红黑树(1)

二叉查找树VS平衡查找树Binary Search Tree possibilitiesBalanced Search Trees如何学 平衡查找树为了保证之前学习的二分查找树BST的平衡性,解决在最...

图解红黑树之插入与删除

所有的图中,仅描述了所需要的节点旋转操作复杂的操作由几个简单的操作组合而成,这里的旋转操作是插入删除的基本操作。 旋转操作以后,不会改变红黑树的平衡性,是一种“安全操作”。 左旋转 左边的树为2...

图解红黑树之2-3查找树

树结构树结构有下面的几个缺点 空间:占空间较多相对于线性结构 创建:构造起来比较麻烦 维护:对于平衡树,结构修改(增、删)后又需要平衡 那么,既然这样为什么还要用树结构呢。原因很简单,它的插入和删除操...

数据结构-AVL树和红黑树的对比

1.红黑树并不追求“完全的平衡”,它只要求达到部分的平衡,降低了对旋转的要求,从而提高了性能。 2.红黑树能够以O(log2 n) 的时间复杂度进行搜索、插入、删除操作,由于它的设计,任何不平衡都会在...

多路查找树之2-3树的插入原理

多路查找树之2-3树的插入原理

算法5-1:平衡查找树之二三树

平衡查找树的目标是实现查找、插入、删除操作在最坏情况下的复杂度均为logN。 本节将介绍二三查找树。 二三树中有两种节点: 二节点对应一个键,有两个子...

2-3树的删除

2-3树所有叶子都在同一个层次,也就是说每一层的叶子数目都是相等的,如图1: 1.删除的元素是叶子节点并且含有两个元素,比如删除6,直接删除即可,如图2: 2.删除的元素是叶子节点...

十二、平衡二叉树(2-3查找树、红黑二叉树)

平衡二叉树 2-3查找树保证平衡 红黑二叉树 旋转 向2结点中插入新键 向树底部的2-结点插入新键 向3结点插入新键 向树底部的3-结点插入新键 红链接的传递 删除最小键 构造轨迹 性质平衡二叉树理想...

C/C++ OpenCV读取视频与调用摄像头

C/C++ OpenCV读取视频与调用摄像头

从2-3-4树谈到Red-Black Tree(红黑树)

译者:July。 出处:http://blog.csdn.net/v_JULY_v 。       在上一篇文章--从B树、B+树、B*树谈到R 树里已提到2-3-4树,那么本文,咱...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)