private void preOrderPositions(Position<T> p, ArrayList<Position<T>> pal)
			throws InvalidPositionException, BoundaryViolationException {
		pal.add(p);
		if (hasLeft(p))
			preOrderPositions(left(p), pal);
		if (hasRight(p))
			preOrderPositions(right(p), pal);
	}