-->
当前位置:首页 > 题库 > 正文内容

程序填空题:BinQueue_Merge [3]

Luz4年前 (2021-05-10)题库1599
The function `BinQueue_Merge` is to merge two binomial queues `H1` and `H2`, and return `H1` as the resulting queue.

```c++
BinQueue BinQueue_Merge( BinQueue H1, BinQueue H2 )
{ BinTree T1, T2, Carry = NULL;
int i, j;
H1->CurrentSize += H2-> CurrentSize;
for ( i=0, j=1; j<= H1->CurrentSize; i++, j*=2 ) {
T1 = H1->TheTrees[i]; T2 = H2->TheTrees[i];
switch( 4*!!Carry + 2*!!T2 + !!T1 ) {
case 0:
case 1: break;
case 2: H1->TheTrees[i] = T2; H2->TheTrees[i] = NULL; break;
case 3: Carry = CombineTrees( T1, T2 );
H1->TheTrees[i] = H2->TheTrees[i] = NULL; break;
case 4: @@[H1->TheTrees[i] = Carry; Carry = NULL](3); break;
case 6: Carry = CombineTrees( T2, Carry );
H2->TheTrees[i] = NULL; break;
case 5: @@[Carry = CombineTrees( T1, Carry )](3);
H1->TheTrees[i] = NULL; break;
case 7: H1->TheTrees[i] = Carry;
Carry = CombineTrees( T1, T2 );
H2->TheTrees[i] = NULL; break;
} /* end switch */
} /* end for-loop */
return H1;
}
```





答案:
第1空:H1->TheTrees[i] = Carry; Carry = NULL

第2空:Carry = CombineTrees( T1, Carry )

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。