Chapter 8
Chapter 8
This chapter focuses on Stacks & Queues, which are linear data structures.
Operation Description
Push Adds an element to the top of the stack.
Pop Removes and returns the top element.
Peek (Top) Returns the top element without removing it.
isEmpty Checks if the stack is empty.
# Push operation
stack.append(10)
stack.append(20)
stack.append(30)
# Pop operation
print(stack.pop()) # Output: 30 (LIFO)
# Peek operation
print(stack[-1]) # Output: 20
def pop(self):
if not self.is_empty():
return self.stack.pop()
return "Stack is empty"
def peek(self):
if not self.is_empty():
return self.stack[-1]
return "Stack is empty"
def is_empty(self):
return len(self.stack) == 0
# Enqueue operation
queue.append(10)
queue.append(20)
queue.append(30)
# Dequeue operation
print(queue.pop(0)) # Output: 10 (FIFO)
# Peek operation
print(queue[0]) # Output: 20
# Enqueue operation
queue.append(10)
queue.append(20)
queue.append(30)
# Dequeue operation
print(queue.popleft()) # Output: 10
# Peek operation
print(queue[0]) # Output: 20
def dequeue(self):
if not self.is_empty():
return self.queue.pop(0)
return "Queue is empty"
def peek(self):
if not self.is_empty():
return self.queue[0]
return "Queue is empty"
def is_empty(self):
return len(self.queue) == 0
def dequeue(self):
if self.front == -1:
return "Queue is empty"
elif self.front == self.rear:
item = self.queue[self.front]
self.front = self.rear = -1
else:
item = self.queue[self.front]
self.front = (self.front + 1) % self.size
return item
Summary of Chapter 8
Stack follows LIFO (Last In, First Out).
Queue follows FIFO (First In, First Out).
Operations: Push, Pop (Stack) | Enqueue, Dequeue (Queue).
Stack Applications: Expression evaluation, Backtracking, Function calls.
Queue Applications: CPU Scheduling, BFS, Data Buffering.
Types of Queues: Simple, Circular, Priority, Deque.