-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathqueue_using_two_stacks.py
More file actions
48 lines (43 loc) · 1.29 KB
/
queue_using_two_stacks.py
File metadata and controls
48 lines (43 loc) · 1.29 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
# -*- coding: utf-8 -*-
"""Queue using Two Stacks
Automatically generated by Colaboratory.
Original file is located at
https://colab.research.google.com/drive/1b3bN-V-Vfhn0q4t72EeU4SVjzU5IcxUL
"""
class CQ:
def __init__(self):
self.st_eq= []
self.st_dq =[]
def enqueue(self,element):
self.st_eq.append(element)
def dequeue(self):
if not self.st_dq:
while self.st_eq:
self.st_dq.append(self.st_eq.pop())
if not self.st_dq:
return None
return self.st_dq.pop()
def print_front(self):
if not self.st_dq:
while self.st_eq:
self.st_dq.append(self.st_eq.pop())
if not self.st_dq:
return None
return self.st_dq[-1]
def process_queries(queries):
custom_queue = CQ()
results = []
for query in queries:
if query[0]==1:
custom_queue.enqueue(query[1])
elif query[0]==2:
custom_queue.dequeue()
elif query[0]==3:
front_element = custom_queue.print_front()
results.append(front_element)
return results
inputVal =input()
queries = [list(map(int,query.split())) for query in inputVal.split(',')]
outputVal = process_queries(queries)
for result in outputVal:
print(result)