How to reverse the first N elements of a queue in Python

1 Answer

0 votes
from queue import Queue 
  
def reverseQueueFirstNElements(q, n): 
    if (q.empty() == True or n > q.qsize() or n <= 0):  
        return
  
    Stack = [] 
  
    for i in range(n): 
        Stack.append(q.queue[0])  
        q.get() 
  
    while (len(Stack) != 0 ):  
        q.put(Stack[-1])  
        Stack.pop() 
  
    for i in range(q.qsize() - n): 
        q.put(q.queue[0])  
        q.get() 


q = Queue()  

q.put(3)  
q.put(5)  
q.put(2)  
q.put(7)  
q.put(9)  
q.put(1)  
q.put(8)  

print(list(q.queue))
  
reverseQueueFirstNElements(q, 4)  

print(list(q.queue))
  
       
      
'''
run:
 
[3, 5, 2, 7, 9, 1, 8]
[7, 2, 5, 3, 9, 1, 8]
      
'''

 



answered Apr 16, 2020 by avibootz

Related questions

1 answer 118 views
1 answer 112 views
1 answer 129 views
1 answer 279 views
3 answers 195 views
195 views asked Apr 4, 2020 by avibootz
1 answer 104 views
1 answer 144 views
...