public static int diskSpace (InspectableTree T, Position v) {
    int s = size(v);		// start with the size of the node itself
    PositionIterator children = T.children(v);
    while (children.hasNext())
      // add the recursively computed space used by the children of v
      s += diskSpace(T, children.nextPosition());
    if (T.isInternal(v))
      // print name and disk space used
      System.out.print(name(v) + ": " + s);
    return s;
  }