Answered step by step
Verified Expert Solution
Question
1 Approved Answer
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
Step: 1
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started