Exam Fomin

 avatar
0leksa
python
a month ago
1.6 kB
4
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()
Leave a Comment