Exam Fomin
0leksa
python
a year ago
1.6 kB
9
Indexable
def read_graph_from_file(filename):
with open(filename, 'r') as f:
lines = f.readlines()
adjacency_matrix = [[int(num) for num in line.split()] for line in lines]
return adjacency_matrix
def depth_first_search(graph, start):
"""Реалізує пошук в глибину.
Args:
graph: Матриця суміжності графа.
start: Індекс початкової вершини.
"""
visited = set() # Множина відвіданих вершин
stack = [start] # Стек для обходу
while stack:
vertex = stack.pop()
if vertex not in visited:
visited.add(vertex)
print(vertex, end=' ')
for neighbor in range(len(graph)):
if graph[vertex][neighbor] == 1 and neighbor not in visited:
stack.append(neighbor)
def main():
"""Розташування файлу graph.txt що містить матрицю суміжності
0 1 1 0 0
1 0 0 1 0
1 0 0 1 1
0 1 1 0 1
0 0 1 1 0
"""
filename = "C:\\Users\\aleks\\Documents\\ХНЕУ\\2024-2025\\2024\\ASD-122\\graph.txt"
# Введення графу з файлу
graph = read_graph_from_file(filename)
# Виведення графу
for row in graph:
print(row)
# Пошук в глибину
start_vertex = 0 # Початкова вершина
depth_first_search(graph, start_vertex)
if __name__ == '__main__':
main()
Editor is loading...
Leave a Comment