private Iterable<Position<T>> positions() throws InvalidPositionException,
			BoundaryViolationException, EmptyTreeException {
		ArrayList<Position<T>> ps = new ArrayList<Position<T>>();
		if (size != 0) {
			preOrderPositions(root(), ps);
			// inOrderPositions(root(), ps);
			// postOrderPositions(root(), ps);
		}
		return ps;
	}