快速业务通道

Commons Collections学习笔记(三) - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-16
private void doRedBlackDeleteFixup(final Node replacementNode,                     final int index){

Commons Collections僥楼永芝?眉?(2)

扮寂:2011-07-20 鴬人坩 Phinecos

//嶷仟蕉何峠財碕菜峯

    Node currentNode = replacementNode;      while ((currentNode != rootNode[index])          && (isBlack(currentNode, index))) {        if (isLeftChild(currentNode, index)) {          Node siblingNode =            getRightChild(getParent(currentNode, index), index);          if (isRed(siblingNode, index)) {            makeBlack(siblingNode, index);            makeRed(getParent(currentNode, index), index);            rotateLeft(getParent(currentNode, index), index);            siblingNode = getRightChild(getParent(currentNode, index), index);          }          if (isBlack(getLeftChild(siblingNode, index), index)              && isBlack(getRightChild(siblingNode, index),                   index)) {            makeRed(siblingNode, index);            currentNode = getParent(currentNode, index);          } else {            if (isBlack(getRightChild(siblingNode, index), index)) {              makeBlack(getLeftChild(siblingNode, index), index);              makeRed(siblingNode, index);              rotateRight(siblingNode, index);              siblingNode =                getRightChild(getParent(currentNode, index), index);            }            copyColor(getParent(currentNode, index), siblingNode,                 index);            makeBlack(getParent(currentNode, index), index);            makeBlack(getRightChild(siblingNode, index), index);            rotateLeft(getParent(currentNode, index), index);            currentNode = rootNode[index];          }        } else {          Node siblingNode = getLeftChild(getParent(currentNode, index), index);          if (isRed(siblingNode, index)) {            makeBlack(siblingNode, index);            makeRed(getParent(currentNode, index), index);            rotateRight(getParent(currentNode, index), index);            siblingNode = getLeftChild(getParent(currentNode, index), index);          }          if (isBlack(getRightChild(siblingNode, index), index)              && isBlack(getLeftChild(siblingNode, index), index)) {            makeRed(siblingNode, index);            currentNode = getParent(currentNode, index);          } else {            if (isBlack(getLeftChild(siblingNode, index), index)) {              makeBlack(getRightChild(siblingNode, index), index);              makeRed(siblingNode, index)

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号