public void insertItem(Object k, Object e) throws InvalidKeyException {
    if (!comp.isComparable(k))
      throw new InvalidKeyException("Invalid Key");
    Position z = T.add(new Item(k, e));
    Position u;
    while (!T.isRoot(z)) { // up-heap bubbling
      u = T.parent(z);
      if (comp.isLessThanOrEqualTo(key(u), key(z)))
        break;
      T.swapElements(u, z);
      z = u;
    }
  }