/** Node class **/ class Node{ private Node left; private Node right; private Node parent; private boolean color_red; private Comparable data; public Node(Comparable d){ data = d; left = right = parent = null; color_red = true; } public Node( boolean red ){ data = null; left = right = parent = null; color_red = red; } public Node(Node y){ data = y.Data(); left = y.Left(); right = y.Right(); parent = y.Parent(); color_red = y.IsRed(); } public boolean IsBlack(){ return (!color_red); } public boolean IsRed(){ return (color_red); } public Node Left(){ return left; } public Node Right(){ return right; } public Node Parent(){ return parent; } public Comparable Data(){ return data; } public void SetLeft(Node y){ left = y; } public void SetRight(Node y){ right = y; } public void SetParent(Node y){ parent = y; } public void SetColorBlack(){ color_red = false; } public void SetColorRed(){ color_red = true; } public void SetData(Comparable d){ data = d; } }