code: @Override
  	public Iterator<E> iterator() {
  		return new Iterator<E>() {
  			private PQueue<E> queue = AmortizedPQueue.this;
  			public boolean hasNext() {
  				return queue.size() > 0;
  			}
  
  			public E next() {
  				E e = queue.peek();
  				queue = queue.minus();
  				return e;
  			}
  
  			public void remove() {
  				throw new UnsupportedOperationException();
  			}
  		};
  	}
docs: /* Worst-case O(n)