0001 /****************************************************************************************** 0002 * Data Structures in C++ 0003 * ISBN: 7-302-33064-6 & 7-302-33065-3 & 7-302-29652-2 & 7-302-26883-3 0004 * Junhui DENG, deng@tsinghua.edu.cn 0005 * Computer Science & Technology, Tsinghua University 0006 * Copyright (c) 2003-2019. All rights reserved. 0007 ******************************************************************************************/ 0008 0009 //对向量前n个词条中的第i个实施下滤,i < n 0010 template <typename T> Rank percolateDown ( T* A, Rank n, Rank i ) { 0011 Rank j; //i及其(至多两个)孩子中,堪为父者 0012 while ( i != ( j = ProperParent ( A, n, i ) ) ) //只要i非j,则 0013 { swap ( A[i], A[j] ); i = j; } //二者换位,并继续考查下降后的i 0014 return i; //返回下滤抵达的位置(亦i亦j) 0015 }