📄 rbtreeelement.java
字号:
/* * Copyright (C) 2000-2007 Wang Pengcheng <wpc0000@gmail.com> * Licensed to the Wang Pengcheng under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The LGPL licenses this file to You under the GNU Lesser General Public * Licence, Version 2.0 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at * * http://www.gnu.org/licenses/lgpl.txt * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. *///14 Dec 2007package cn.edu.whu.iss.algorithm.unit13;import static cn.edu.whu.iss.algorithm.unit13.InterfaceRBTree.*;public class RBTreeElement<T> { protected RBTreeElement<T> leftChild,rightChild,parent; protected T o; protected boolean color = RED; public RBTreeElement(T o) { this.o = o; } public RBTreeElement(T o, RBTreeElement<T> sentinel){ this.o = o; this.parent = sentinel; leftChild = sentinel; rightChild = sentinel; } public RBTreeElement(T o,RBTreeElement<T> left,RBTreeElement<T> right,RBTreeElement<T> parent){ this.o = o; this.leftChild = left; this.rightChild = right; this.parent = parent; } public boolean getColor() { return color; } public RBTreeElement<T> getChild(int direction){ if(direction<0){ return leftChild; }else if(direction>0){ return rightChild; } return null; } public void setChild(int dir,RBTreeElement<T> child){ if(dir<0){ leftChild = child; }else if(dir>0){ rightChild = child; } } public void setColor(boolean color) { this.color = color; } public boolean isBlack(){ return color==BLACK; } public boolean isRed(){ return color==RED; } public RBTreeElement<T> getLeftChild() { return leftChild; } public void setLeftChild(RBTreeElement<T> leftChild) { this.leftChild = leftChild; } public RBTreeElement<T> getRightChild() { return rightChild; } public void setRightChild(RBTreeElement<T> rightChild) { this.rightChild = rightChild; } public RBTreeElement<T> getParent() { return parent; } public void setParent(RBTreeElement<T> parent) { this.parent = parent; } public T getObject() { return o; } public void setObject(T o) { this.o = o; } public void setBlack(){ this.color = BLACK; } public void setRed(){ this.color = RED; } public boolean hasTwoBlackChildren(){ return leftChild.isBlack()&&rightChild.isBlack(); } @Override public String toString() { if(o==null){ return ""; } return o.toString(); } }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -