public interface QueueTreeInterface extends NestingInterface
{
  public void attachRightmost(Object newItem);
  // Appends a node as an additonal subtree
  // pre:  !isEmpty()
  // post: enqueues a new subtree that contains newItem as
  //       its root value and has no subtrees itself.

  public void attachRightmostSubtree(QueueTreeInterface newTree);
  // Appends a pre-formed tree as an additional subtree
  // pre:  - not this.isEmpty() and not newTree.isEmpty()
   //      - this is not nested within newTree
  //       - newTree is not nested within some other tree
  // post: newTree is enqueued as an additional subtree.
  //       newTree itself is made empty.

  public QueueTreeInterface detachLeftmostSubtree();
  // Detaches the leftmost subtree
  // pre:  not this.isEmpty()
  // post: the left-most subtree is dequeued and returned;
  //       if there are no subtrees, returns null

} // end QueueTreeInterface
