/** Node class **/ import java.awt.*; import ciips.animation.*; import ciips.animation.tree.*; import ciips.animation.graph.*; class RBNode extends GraphNode { private RBNode left; private RBNode right; private RBNode parent; private boolean color_red; private int data; int pos_x, pos_y; public RBNode(int d, int pos_x, int pos_y) { super(d, pos_x, pos_y); left = right = parent = null; color_red = true; this.Set_Highlight( Color.red ); } public boolean IsBlack(){ return (!color_red); } public boolean IsRed(){ return (color_red); } public RBNode Left(){ return left; } public Color getColour() { if(IsBlack()) return Color.black; else if(IsRed()) return Color.red; else System.out.println("Node is neither Red nor Black"); return Color.blue; } public RBNode Right(){ return right; } public RBNode Parent(){ return parent; } /* public int Data(){ return data; } */ public void SetLeft(RBNode y){ left = y; } public void SetRight(RBNode y){ right = y; } public void SetParent(RBNode y){ parent = y; } public void SetColorBlack(){ color_red = false; setNodeColour( Color.black ); setLabelColour( Color.red ); } public void SetColorRed(){ color_red = true; setNodeColour( Color.red ); setLabelColour( Color.black ); } public void SetData(int d){ data = d; } }