1 16 17 18 package com.daffodilwoods.rbtreesizesequence.utils.rbtree; 19 20 import java.util.Comparator ; 21 public class RBTreeNode implements Comparable { 22 public static final boolean BLACK = true; 23 public static final boolean RED = false; 24 public Object key; 25 public RBTreeNode left = null; 26 public RBTreeNode right = null; 27 public RBTreeNode parent; 28 public boolean color = BLACK; 29 private Comparator comparator; 30 31 public void setKey(Object key){ 32 this.key = key; 33 } 34 35 public RBTreeNode getLeft(){ 36 return left; 37 } 38 39 public RBTreeNode getRight(){ 40 return right; 41 } 42 43 public void setLeft(RBTreeNode node){ 44 left = node; 45 } 46 public void setRight(RBTreeNode node){ 47 right = node; 48 } 49 public void setParent(RBTreeNode node){ 50 parent = node; 51 } 52 public RBTreeNode getParent(){ 53 return parent; 54 } 55 56 public void setColor(boolean c){ 57 color = c; 58 } 59 public boolean getColor(){ 60 return color; 61 } 62 63 67 68 public RBTreeNode(Object key, RBTreeNode parent) { 69 this.key = key; 70 this.parent = parent; 71 } 72 73 public RBTreeNode(Object key, RBTreeNode parent, Comparator c) { 74 this.key = key; 75 this.parent = parent; 76 this.comparator = c; 77 } 78 79 80 85 public Object getKey() { 86 return key; 87 } 88 89 public boolean equals(Object o) { 90 if (!(o instanceof RBTreeNode)) 91 return false; 92 93 RBTreeNode e = (RBTreeNode)o; 94 return key.equals(e.getKey()); 95 } 96 97 public String toString() { 98 return hashCode() + " - " + key.toString(); 99 } 100 101 protected void show(){ 102 } 103 104 105 public int compareTo(Object obj){ 106 107 if(key == obj) return 0; 108 return (comparator==null ? ((Comparable )key).compareTo(((RBTreeNode)obj).getKey()) 109 : comparator.compare(key, obj)); 110 } 111 112 } 113 | Popular Tags |