@Override
	public Position<T> parent(Position<T> p) throws BoundaryViolationException,
			InvalidPositionException {

		BTPosition<T> rp = checkPosition(p);
		// node get its parent
		Position<T> parentP = rp.getParent();
		if (parentP == null)
			throw new BoundaryViolationException("No parent");
		return parentP;
	}