0% found this document useful (0 votes)
12 views

Queue and Stack

The document defines a Queue class with methods to add and remove items, check if empty, and get the size. It demonstrates using the queue by adding and removing items and checking properties.

Uploaded by

connectwitsiree
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
12 views

Queue and Stack

The document defines a Queue class with methods to add and remove items, check if empty, and get the size. It demonstrates using the queue by adding and removing items and checking properties.

Uploaded by

connectwitsiree
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 4

class Queue:

def __init__(self):
self.items = []

def enqueue(self, item):


self.items.append(item)

def dequeue(self):
if not self.is_empty():
return self.items.pop(0)
else:
raise IndexError("Queue is empty")

def is_empty(self):
return len(self.items) == 0

def size(self):
return len(self.items)

queue = Queue()
queue.enqueue(4)
queue.enqueue(12)
queue.enqueue(6)
queue.enqueue(10)
queue.enqueue(8)
queue.enqueue(15)
queue.enqueue(28)

print("Size:", queue.size())
print("Dequeued:", queue.dequeue())
print("Dequeued:", queue.dequeue())
print("Dequeued:", queue.dequeue())
print("Dequeued:", queue.dequeue())
print("Dequeued:", queue.dequeue())
print("Dequeued:", queue.dequeue())
print("Dequeued:", queue.dequeue())
print("Is Empty?", queue.is_empty())

queue.enqueue(40)
print("Size:", queue.size())

Solution:
Size: 7
Dequeued: 4
Dequeued: 12
Dequeued: 6
Dequeued: 10
Dequeued: 8
Dequeued: 15
Dequeued: 28
Is Empty? True
Size: 1
class Node:
def __init__(self, data):
self.data = data
self.next = None

class Queue:
def __init__(self):
self.front = None
self.rear = None

def enqueue(self, item):


new_node = Node(item)
if self.rear is None:
self.front = new_node
self.rear = new_node
else:
self.rear.next = new_node
self.rear = new_node

def dequeue(self):
if not self.is_empty():
item = self.front.data
self.front = self.front.next
if self.front is None:
self.rear = None
return item
else:
raise IndexError("Queue is empty")

def is_empty(self):
return self.front is None

def size(self):
count = 0
current = self.front
while current:
count += 1
current = current.next
return count

queue = Queue()
queue.enqueue(4)
queue.enqueue(12)
queue.enqueue(6)
queue.enqueue(10)
queue.enqueue(8)
queue.enqueue(15)
queue.enqueue(28)

print("Size:", queue.size())
print("Dequeued:", queue.dequeue())
print("Dequeued:", queue.dequeue())
print("Dequeued:", queue.dequeue())
print("Dequeued:", queue.dequeue())
print("Dequeued:", queue.dequeue())
print("Dequeued:", queue.dequeue())
print("Dequeued:", queue.dequeue())
print("Is Empty?", queue.is_empty())

queue.enqueue(40)
print("Size:", queue.size())

Solution:

Size: 7
Dequeued: 4
Dequeued: 12
Dequeued: 6
Dequeued: 10
Dequeued: 8
Dequeued: 15
Dequeued: 28
Is Empty? True
Size: 1

class Stack:
def __init__(self):
self.items = []

def is_empty(self):
return len(self.items) == 0

def push(self, item):


self.items.append(item)

def pop(self):
if not self.is_empty():
return self.items.pop()
else:
raise IndexError("pop from an empty stack")
def peek(self):
if not self.is_empty():
return self.items[-1]
else:
raise IndexError("peek from an empty stack")

def size(self):
return len(self.items)

# Example usage
stack = Stack()
stack.push(10)
stack.push(20)
stack.push(30)

print("Top element:", stack.peek()) # Output: 30


print("Popped:", stack.pop()) # Output: 30
print("Size:", stack.size()) # Output: 2

Solution:
Top element: 30
Popped: 30
Size: 2

You might also like