Java Helper Classes and Functions
import [Link].*;
// Binary Tree Node class
public class BinNode<T> {
private T value;
private BinNode<T> left;
private BinNode<T> right;
public BinNode(T value) {
[Link] = value;
[Link] = null;
[Link] = null;
}
public BinNode(BinNode<T> left, T value, BinNode<T> right) {
[Link] = value;
[Link] = left;
[Link] = right;
}
public T getValue() {
return value;
}
public BinNode<T> getLeft() {
return left;
}
public BinNode<T> getRight() {
return right;
}
public void setValue(T value) {
[Link] = value;
}
public void setLeft(BinNode<T> left) {
[Link] = left;
}
public void setRight(BinNode<T> right) {
[Link] = right;
}
public String toString() {
return "( " + left + " " + value + " " + right + " )";
}
}
// Linked List Node class
public class Node<T> {
private T value;
private Node<T> next;
public Node(T value) {
[Link] = value;
[Link] = null;
}
public Node(T value, Node<T> next) {
[Link] = value;
[Link] = next;
}
public T getValue() {
return [Link];
}
public Node<T> getNext() {
return [Link];
}
public void setValue(T value) {
[Link] = value;
}
public void setNext(Node<T> next) {
[Link] = next;
}
public String toString() {
return [Link]();
}
}
// Queue class implemented using linked Nodes
public class Queue<T> {
public Node<T> first;
public Node<T> last;
public Queue() {
[Link] = null;
[Link] = null;
}
public void insert(T x) {
Node<T> temp = new Node<T>(x);
if (first == null)
first = temp;
else
[Link](temp);
last = temp;
}
public T remove() {
T x = [Link]();
first = [Link]();
if (first == null)
last = null;
return x;
}
public T top() {
return [Link]();
}
public boolean isEmpty() {
return first == null;
}
public String toString() {
StringBuilder sb = new StringBuilder();
Node<T> l = first;
while (l != null) {
[Link]([Link]()).append(" -> ");
l = [Link]();
}
[Link]("null");
return [Link]();
}
}