Please answer the following as soon as possible. Thank you.
Add the top method in class Stack to the following python code which returns the top item of the stack. Test it.
Design top() method using a single queue as an instance variable, and only constant additional local memory within the method bodies.
python code:
class Stack: def __init__(self): self.q = Queue() def is_empty(self): return self.q.is_empty() def push(self, data): self.q.enqueue(data) def pop(self): for _ in range(self.q.get_size() - 1): dequeued = self.q.dequeue() self.q.enqueue(dequeued) return self.q.dequeue() class Queue: def __init__(self): self.items = [] self.size = 0 def is_empty(self): return self.items == [] def enqueue(self, data): self.size += 1 self.items.append(data) def dequeue(self): self.size -= 1 return self.items.pop(0) def get_size(self): return self.size s = Stack() s.push(1) s.push(2) s.push(3) s.push(4)
Please find the answer below.
Please do comments in case of any issue. Also, don't forget to rate
the question. Thank You So Much.
class Stack:
def __init__(self):
self.q = Queue()
def is_empty(self):
return self.q.is_empty()
def push(self, data):
self.q.enqueue(data)
def pop(self):
for _ in range(self.q.get_size() - 1):
dequeued = self.q.dequeue()
self.q.enqueue(dequeued)
return self.q.dequeue()
def top (self):
return self.q.get_rear()
class Queue:
def __init__(self):
self.items = []
self.size = 0
def is_empty(self):
return self.items == []
def enqueue(self, data):
self.size += 1
self.items.append(data)
def dequeue(self):
self.size -= 1
return self.items.pop(0)
def get_size(self):
return self.size
def get_rear(self):
return self.items[self.size-1]
s = Stack()
s.push(1)
s.push(2)
s.push(3)
s.push(4)
s.push(40)
print("Top is : ",s.top())
output
Get Answers For Free
Most questions answered within 1 hours.