From 89cdf3efb49335e7c07a68a5a64657eeec2288a6 Mon Sep 17 00:00:00 2001 From: Alexander Pickering Date: Mon, 6 Feb 2017 11:41:36 -0500 Subject: Inital commit --- projects/project4_huffman_tree/BinaryNode.java | 100 +++++++++++++++++++++++++ 1 file changed, 100 insertions(+) create mode 100644 projects/project4_huffman_tree/BinaryNode.java (limited to 'projects/project4_huffman_tree/BinaryNode.java') diff --git a/projects/project4_huffman_tree/BinaryNode.java b/projects/project4_huffman_tree/BinaryNode.java new file mode 100644 index 0000000..d498b8e --- /dev/null +++ b/projects/project4_huffman_tree/BinaryNode.java @@ -0,0 +1,100 @@ + +public class BinaryNode implements BinaryNodeInterface +{ + private T data; + private BinaryNode left; + private BinaryNode right; + + public BinaryNode(T dataPortion, BinaryNode leftChild, BinaryNode rightChild) + { + data = dataPortion; + left = leftChild; + right = rightChild; + } + + public BinaryNode(T dataPortion) + { + this(dataPortion, null, null); + } + + public BinaryNode() + { + this(null); + } + + public T getData() + { + return data; + } + + public void setData(T newData) + { + data = newData; + } + + public BinaryNodeInterface getLeftChild() + { + return left; + } + + public BinaryNodeInterface getRightChild() + { + return right; + } + + public void setLeftChild(BinaryNodeInterface leftChild) + { + left = (BinaryNode) leftChild; + } + + public void setRightChild(BinaryNodeInterface rightChild) + { + right = (BinaryNode) rightChild; + } + + public boolean hasLeftChild() + { + return left != null; + } + + public boolean hasRightChild() + { + return right != null; + } + + public boolean isLeaf() + { + return left == null && right == null; + } + + public int getNumberOfNodes() + { + int leftNumber = 0; + int rightNumber = 0; + + if(left != null) + leftNumber = left.getNumberOfNodes(); + + if(right != null) + rightNumber = right.getNumberOfNodes(); + + return 1 + leftNumber + rightNumber; + } + + public int getHeight() + { + return getHeight(this); + } + + private int getHeight(BinaryNode node) + { + int height = 0; + + if(node != null) + { + height = 1 + Math.max(getHeight(node.left), getHeight(node.right)); + } + + return height; + } +} -- cgit v1.2.3-70-g09d2