0001 template <typename T> Rank percolateUp( T* A, Rank i ) { //对词条A[i]做上滤,0 <= i < _size 0002 while ( 0 < i ) { //在抵达堆顶之前,反复地 0003 Rank j = Parent( i ); //考查[i]之父亲[j] 0004 if ( !( A[j] < A[i] ) ) break; //一旦父子顺序,上滤旋即完成;否则 0005 swap( A[i], A[j] ); i = j; //父子换位,并继续考查上一层 0006 } //while 0007 return i; //返回上滤最终抵达的位置 0008 }