package DevUtils.Nodes; /** * Simple TreeNode extension that holds references * to two child Nodes (left and right). * * @param The type of the data held in the Node. * * @author aitorfi */ public class SimpleTreeNode extends TreeNode { /** Refrence to the child Node on the left. */ private SimpleTreeNode leftNode; /** Refrence to the child Node on the right. */ private SimpleTreeNode rightNode; /** Empty contructor. */ public SimpleTreeNode() { super(); } /** * Initializes the Nodes' data. * * @param data Value to which data will be initialized. * @see TreeNode#TreeNode(Object) */ public SimpleTreeNode(E data) { super(data); } /** * Initializes the Nodes' data and parent node reference. * * @param data Value to which data will be initialized. * @param parentNode Value to which the nodes' parent reference will be set. * @see TreeNode#TreeNode(Object, Node) */ public SimpleTreeNode(E data, SimpleTreeNode parentNode) { super(data, parentNode); } /** * Initializes the Nodes' data and parent and child nodes references. * * @param data Value to which data will be initialized. * @param parentNode Value to which the nodes' parent reference will be set. * @param leftNode Value to which the nodes' left child reference will be set. * @param rightNode Value to which the nodes' right child reference will be set. */ public SimpleTreeNode(E data, SimpleTreeNode parentNode, SimpleTreeNode leftNode, SimpleTreeNode rightNode) { super(data, parentNode); this.leftNode = leftNode; this.rightNode = rightNode; } /** * @return True if the node is a leaf node, otherwise false. * @see TreeNode#isLeafNode() */ @Override public boolean isLeafNode() { return (leftNode == null && rightNode == null); } public SimpleTreeNode getLeftNode() { return leftNode; } public void setLeftNode(SimpleTreeNode leftNode) { this.leftNode = leftNode; } public SimpleTreeNode getRightNode() { return rightNode; } public void setRightNode(SimpleTreeNode rightNode) { this.rightNode = rightNode; } }