相关代码 |
|
算法 6.14 void HeapAdjust (HeapType &H, int s, int m) { // 已知H.r[s..m]中记录的关键字除H.r[s].key之外均满足堆的定义,本函数依据 // 关键字的大小对H.r[s]进行调整,使H.r[s..m]成为一个大顶堆(对其中记录的关键字而言) rc = H.r[s]; // 暂存根结点的记录 for ( j=2*s; j if ( j if ( rc.key >= H.r[j].key ) break; // 不需要调整 H.r[s] = H.r[j]; s = j; // 把大关键字记录往上调 } H.r[s] = rc; // 回移筛选下来的记录 } // HeapAdjust
相关资源 |
|