C/C++の宿題を片付けます 87代目
at TECH
735:デフォルトの名無しさん
07/05/22 22:12:01
>>730
void MAKENULL(PRQueue *Q){ Q->last = 0; }
void INSERT (ElementType x, PRQueue *Q){
int i, j;
for (i = Q->last++; i > 0; i = j) {
j = (i - 1)/2;
if (Q->elements[j] > x)
Q->elements[i] = Q->elements[j];
else break;
}
Q->elements[i] = x;
}
ElementType DELETEMIN(PRQueue *Q){
int i, j, root, tmp;
root = Q->elements[0];
tmp = Q->elements[--Q->last];
for (i = 0; 2*i + 1 < Q->last; i = j) {
j = 2*i + 1;
if (j + 1 < Q->last && Q->elements[j] > Q->elements[j + 1])
j++;
if (Q->elements[j] < tmp)
Q->elements[i] = Q->elements[j];
else break;
}
Q->elements[i] = tmp;
return root;
}
次ページ続きを表示1を表示最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
4177日前に更新/299 KB
担当:undef