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