0% found this document useful (0 votes)
8 views2 pages

Ex 10

Uploaded by

0uhtwsnaj3
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
8 views2 pages

Ex 10

Uploaded by

0uhtwsnaj3
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 2

U18AII2205/Introduction to AI and ML

EX-10

Stack and Queue implementation using collection interfaces.

from collections import deque

class Stack:
def __init__(self):
self.stack = deque()

def push(self, item):


self.stack.append(item)

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 enqueue(self, item):


self.queue.append(item)

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)

print("Stack size:", stack.size())


print("Top of stack:", stack.peek())

while not stack.is_empty():


print("Popped:", stack.pop())

queue = Queue()
queue.enqueue(1)
queue.enqueue(2)
queue.enqueue(3)

print("\nQueue size:", queue.size())


print("Front of queue:", queue.peek())

while not queue.is_empty():


print("Dequeued:", queue.dequeue())

You might also like