=null)&&isRed(parent)){gparent=getParent(parent);//如果其祖父节点是空怎么处理// 若父节点是祖父节点的左孩子if(parent==gparent.left){RBTreeNode<T>uncle=gparent.right;if((null!=uncle)&&isRed(uncle)){setColorBlack(uncle);setColorBlack(parent...
if (isRed(h.left) && isRed(h.left.left)) h = rotateRight(h); // 左左都红,右旋 if (isRed(h.left) && isRed(h.right)) flipColors(h); // 左右都红,变色 // 处理左右情况(左子节点红,左子节点的右子节点红) if (isRed(h.left) && !isRed(h.left.left) && isRed(h.left.right...
private void delete_red_leaf(TreeNode node, boolean needDel) 最后就是最麻烦的删除的删除黑色叶子(非Nil)节点的情况,找出兄弟节点,找出远侄子节点,找出近侄子节点。 private void delete_black_leaf(TreeNode node, boolean needDel) 删除叶子节点包含了另外一个参数booleanneedDel,因为上面提到的有些情况需要继续...
TreeNode parent=node.getParent();while(null!= parent && parent.getColor() ==NodeColor.RED) {//parent should not be root for root node must be blackbooleanuncleInRight = parent.getParent().getLeft() ==parent; TreeNode uncle= uncleInRight ?parent.getParent().getRight() : parent.getParent...
红黑树(Red-Black Tree)也是一种自平衡二叉查找树,在前面的文当中,我们已经描述了AVL树了。AVL树与红黑树很像,因此也经常被放到一起比较。 与其他平衡二叉树不同,红黑树的每个节点有个额外的位来存储节点的颜色(红色或者黑色)。这些颜色位保证了在树的插入和删除时能保持平衡。
RBTreeNode<E> parent = null; // 插入元素的父结点 if (root == null) { root = newNode; root.red = false; } else { RBTreeNode<E> current = root; while (current != null) { if (e.compareTo(current.e) < 0) { parent = current; ...
parent.color = RED; // 为了保持黑高不变,上面的两个操作使得黑高增加了1,那么就要把一个黑色节点置红,使得黑高-1 } else { // case3 // uncle==null || uncle.color==BLACK if (x == x.parent.right) { // case 3-2 x = father; leftRotate(father); // case 3-2 转变成了case 3-...
红黑树(Red-Black Tree,以下简称RBTree)的实际应用非常广泛,比如Linux内核中的完全公平调度器、高精度计时器、ext3文件系统等等,各种语言的函数库如Java的TreeMap和TreeSet,C++ STL的map、multimap、multiset等。 RBTree也是函数式语言中最常用的持久数据结构之一,在计算几何中也有重要作用。值得一提的是,Java 8中Ha...
红黑树(RBTree)是一种相比平衡二叉树(AVL)平衡要求较低的的一种二叉搜索树,所谓平衡要求较低的意思是相比AVL树的每个节点的左右子树的高度差不能超过2,红黑树使用红黑两种颜色来标记二叉搜索树中的节点,并对这种着色进行限制,使得在插入删除操作后对不符合的情况必须进行调整来保持这样一种限制,从而实现自我平衡。我...
Java library implementing fundamental data structures, including Binary Search Tree (BST), AVL Tree and Red Black Tree designed for efficient data storage and retrieval - WildandArt/TreeLibrary