0001 //对向量中的第i个词条实施上滤操作,i < _size 0002 template <typename T> Rank PQ_ComplHeap<T>::percolateUp ( Rank i ) { 0003 while ( ParentValid ( i ) ) { //只要i有父亲(尚未抵达堆顶),则 0004 Rank j = Parent ( i ); //将i之父记作j 0005 if ( lt ( _elem[i], _elem[j] ) ) break; //一旦当前父子不再逆序,上滤旋即完成 0006 swap ( _elem[i], _elem[j] ); i = j; //否则,父子交换位置,并继续考查上一层 0007 } //while 0008 return i; //返回上滤最终抵达的位置 0009 }