Artificial Intelligence Lab Final b-25439
Artificial Intelligence Lab Final b-25439
Question 1 solution:
Ans: class Student:
def __init__(self, name, age, department, grade):
self.name = name
self.age = age
self.department = department
self.grade = grade
def __repr__(self):
if criteria == 1:
elif criteria == 2:
elif criteria == 3:
elif criteria == 4:
else:
print("Invalid criteria.")
def print_students(students):
print(student)
students = [
print_students(students)
sort_students(students, criteria)
print_students(students)
question 2 solution:
Ans: class Node:
def __init__(self, value):
self.value = value
self.left = None
self.right = None
def construct_tree(elements):
if not elements:
return None
root = Node(elements[0])
queue = [root]
i=1
current_node = queue.pop(0)
current_node.left = Node(elements[i])
queue.append(current_node.left)
i += 1
current_node.right = Node(elements[i])
queue.append(current_node.right)
i += 1
return root
if root is None:
return None
return root
return root
def find_greatest_value(root):
if root is None:
return float('-inf')
queue = [root]
max_value = root.value
while queue:
current_node = queue.pop(0)
if current_node.left:
queue.append(current_node.left)
if current_node.right:
queue.append(current_node.right)
return max_value
# Example usage
root_node = 20
binary_tree = construct_tree(nodes)
lca_node1 = 10
lca_node2 = 14
greatest_value = find_greatest_value(binary_tree)
OUTPUT:
LCA of 10 and 14 is 12
QUESTION 3 SOLUTION:
Ans:
class Graph:
self.V = vertices
self.graph[u].append(v)
visited[v] = True
for i in self.graph[v]:
if visited[i] == False:
stack.append(v)
def topologicalSort(self):
stack = []
for i in range(self.V):
if visited[i] == False:
stack.reverse()
return stack
# Example:
g = Graph(6)
g.addEdge(5, 2)
g.addEdge(5, 0)
g.addEdge(4, 0)
g.addEdge(4, 1)
g.addEdge(2, 3)
g.addEdge(3, 1)
output:
542310
Question 4 solution:
Ans:
class CustomList:
def __init__(self):
self._data = []
self._data.append(element)
self._data.insert(index, element)
"""Remove the first occurrence of the specified element from the list."""
self._data.remove(element)
def index(self, element):
return self._data.index(element)
return self._data.count(element)
def size(self):
return len(self._data)
return self._data[index]
self._data[index] = element
def sort(self):
self._data.sort()
def reverse(self):
"""Reverse the order of the elements in the list."""
self._data.reverse()
my_list = CustomList()
my_list.append(10)
my_list.append(20)
my_list.insert(1, 15)
print(my_list.get(0)) # Output: 10
print(my_list.get(1)) # Output: 15
print(my_list.get(2)) # Output: 20
my_list.set(2, 25)
print(my_list.get(2)) # Output: 25
my_list.remove(15)
print(my_list.size()) # Output: 2
# Perform operations such as finding index, counting occurrences, and sorting/reversing the list
print(my_list.index(20)) # Output: 1
print(my_list.count(10)) # Output: 1
my_list.sort()
print(my_list.get(0)) # Output: 10
my_list.reverse()
print(my_list.get(0)) # Output: 25
print(my_list.size()) # Output: 2
print(my_list.get(0)) # Output: 25
print(my_list.get(1)) # Output: 10