Ex 10
Ex 10
EX-10
class Stack:
def __init__(self):
self.stack = deque()
def pop(self):
if len(self.stack) == 0:
raise IndexError("pop from an empty stack")
return self.stack.pop()
def peek(self):
if len(self.stack) == 0:
raise IndexError("peek from an empty stack")
return self.stack[-1]
def is_empty(self):
return len(self.stack) == 0
def size(self):
return len(self.stack)
class Queue:
def __init__(self):
self.queue = deque()
def dequeue(self):
if len(self.queue) == 0:
raise IndexError("dequeue from an empty queue")
return self.queue.popleft()
def peek(self):
if len(self.queue) == 0:
raise IndexError("peek from an empty queue")
return self.queue[0]
def is_empty(self):
return len(self.queue) == 0
def size(self):
return len(self.queue)
# Example usage
stack = Stack()
stack.push(1)
stack.push(2)
stack.push(3)
queue = Queue()
queue.enqueue(1)
queue.enqueue(2)
queue.enqueue(3)