Tree in Java
abstract class Tree
{
}

class Leaf extends Tree
{
Object value;

Leaf(Object value)
  {
  this.value = value;
  }
}
class Composite extends Tree
{
Tree left;
Tree right;

Composite(Tree left, Tree right)
  {
  this.left = left;
  this.right = right;
  }