template < class Object> 

void fix(queueType < Object> &q, int n) 
{ 

-if (n>=1) 

-{ 

---Object temp = q.front(); 
---q.deleteQueue(); 
---fix(q,n-1); 
---q.addQueue(temp); 
-} 

}

(a)what will the final state of queue q1 be after the statement fix(q1,2); is exexuted, if q1 has the values (1,2,3,4,5}

my answer: {2,3,4,5,1} because q.addQueue adds an element at the back
step 1: if (2>1) true
step 2: element {1} added to temp
step 3: q.deleteQueue(); deletes element{1}
step 4: fix(q1, 2-1)
step 5: q.addQueue(temp); element{1} is added at the back of the queue

b) what does function fix() do?

It restores the deleted element at the end of the queue

c) A precondition for fix() is: The queue exists and it is not empty

What do u think? Are my answers correct?

Recommended Answers

All 3 Replies

Use CODE Tags when posting code.

>>Are my answers correct?

Not quite. Without giving anything away..

a)
Think a bit more about what happens at "step 4: fix(q1, 2-1)". This is a recursive call (a function calling itself again, usually with different parameters, in this case, n-1 instead of n).

b)
Already, with your current answer to (a), your answer to (b) is incorrect. Once you have worked out the correct answer to (a), this should be pretty easy to answer.

c)
A precondition for fix() is: The queue exists, it is not empty, and... it has at least (blank) elements.

does it put element 1 back to its original place? 12345

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.