/* ECP: FILEname=fig10_13.c */ /* 1*/ SortedInts /* 2*/ MergeM( const SortedInts A[ ], int M ) /* 3*/ { /* 4*/ Queue Q = QuMakeEmpty( NULL ); /* 5*/ SortedInts One, Two, Merged; /* 6*/ int i; /* 7*/ for( i = 0; i < M; i++ ) /* 8*/ Enqueue( A[ i ], Q ); /* 9*/ for( i = 0; i < M-1; i++ ) /*10*/ { /*11*/ Dequeue( &One, Q ); /*12*/ Dequeue( &Two, Q ); /*13*/ Enqueue( MergeTwo( One, Two ), Q ); /*14*/ } /*15*/ Dequeue( &Merged, Q ); /*16*/ QuRecycle( Q ); /*17*/ return Merged; /*18*/ }