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