Question: Consider the following function: void mystery(int num){ int current; stack *stk = (stack *) malloc(sizeof(stack)); queue *que = (queue *) malloc(sizeof(queue)); while( num > 0
| Consider the following function: void mystery(int num){ int current; stack *stk = (stack *) malloc(sizeof(stack)); queue *que = (queue *) malloc(sizeof(queue)); while( num > 0 ){ push(stk, num); num = num - 1; } while( empty(stk) != 1 ){ current = pop(stk); insert(que, current); printf("%d ", current); } printf(" "); while( empty(que) != 1 ){ current = remove(que); push(stk, current); printf("%d ", current); } printf(" "); while( empty(stk) != 1 ){ current = pop(stk); if( empty(stk) != 1 ){ insert(que, pop(stk)); } printf("%d ", current); } printf(" "); while( empty(que) != 1 ){ current = remove(que); push(stk, current); printf("%d ", current); } free(stk); free(que); }
QUESTION 1
QUESTION 2 Suppose we replace que with a priority queue. In particular assume that the function remove removes and returns the largest element of the queue. What does a call to mystery(7) print out now?
|
Step by Step Solution
There are 3 Steps involved in it
Get step-by-step solutions from verified subject matter experts
