docs: @Override
    public IndexTreePath<E> next() {
      Iterator<IndexTreePath<E>> enumeration = queue.peek();
      IndexTreePath<E> nextPath = enumeration.next();
  
      Iterator<IndexTreePath<E>> children;
      if(nextPath.getEntry() instanceof LeafEntry) {
        children = EMPTY_ENUMERATION;
      }
      else {
        N node = index.getNode(nextPath.getEntry());
        children = node.children(nextPath);
      }
  
      if(!enumeration.hasNext()) {
        queue.remove();
      }
      if(children.hasNext()) {
        queue.offer(children);
      }
      return nextPath;
    }