package tree; import exceptions.BoundaryViolationException; import exceptions.EmptyTreeException; import exceptions.InvalidPositionException; import position.Position; import java.util.Iterator; /** * Created with xgiovio.macbookair. * User: xgiovio * Date: 07/04/14 * Time: 15:17 */ public interface Tree extends Iterable { public int size(); public boolean isEmpty(); public Iterable> positions (); public E replace (Position v, E e) throws InvalidPositionException; public Position root () throws EmptyTreeException; public Position parent (Position v) throws InvalidPositionException, BoundaryViolationException; public Iterable > children (Position v) throws InvalidPositionException; // anche se e' foglia public boolean isInternal (Position v) throws InvalidPositionException; public boolean isExternal (Position v) throws InvalidPositionException; public boolean isRoot (Position v) throws InvalidPositionException; }