DS Lab It
DS Lab It
def __init__(self):
self.stack = []
self.stack.append(item)
def pop(self):
if self.stack:
return self.stack.pop()
def peek(self):
if self.stack:
return self.stack[-1]
def is_empty(self):
def size(self):
return len(self.stack)
# Example usage
stack = Stack()
stack.push(10)
stack.push(20)
stack.push(30)
print(stack.peek()) # 30
print(stack.pop()) # 30
print(stack.pop()) # 20
print(stack.size()) # 1
print(stack.is_empty()) # False
output:
10
10
20
False
def __init__(self):
self.queue = []
self.queue.append(item)
def dequeue(self):
if self.queue:
return self.queue.pop(0)
def front(self):
if self.queue:
return self.queue[0]
def is_empty(self):
def size(self):
return len(self.queue)
# Example usage
queue = Queue()
queue.enqueue(10)
queue.enqueue(20)
queue.enqueue(30)
print(queue.front()) # 10
print(queue.dequeue()) # 10
print(queue.dequeue()) # 20
print(queue.size()) # 1
print(queue.is_empty()) # False
output:
10
10
20
False
while queue:
node = queue.pop(0) # Dequeue the front element
bfs_order.append(node)
outuput:
Example Graph:
Vertices: 5 (0, 1, 2, 3, 4)
Edges: (0-1), (0-2), (1-3), (1-4), (2-4) (undirected)
Adjacency Matrix:
[0, 1, 1, 0, 0]
[1, 0, 0, 1, 1]
[1, 0, 0, 0, 1]
[0, 1, 0, 0, 0]
[0, 1, 1, 0, 0]
while stack:
node = stack.pop() # Pop the top element from the stack
dfs_order.append(node)
output:
Example Graph:
Vertices: 5 (0, 1, 2, 3, 4)
Edges: (0-1), (0-2), (1-3), (1-4), (2-4) (undirected)
Adjacency Matrix:
[0, 1, 1, 0, 0]
[1, 0, 0, 1, 1]
[1, 0, 0, 0, 1]
[0, 1, 0, 0, 0]
[0, 1, 1, 0, 0]