CSES - Komponentit

Tehtäväsi on muodostaa annetun verkon kaikki komponentit listoina. Esimerkiksi seuraavassa verkossa on kolme komponenttia, jotka ovat [1,2,3], [4,5,6,7] ja [8].

Jokainen komponentti tulee esittää listana, jossa on komponentin solmut pienimmästä suurimpaan. Komponentit tulee esittää listana, jossa komponentit on järjestetty komponentin pienimmän solmun mukaan.

Toteuta tiedostoon components.py funktio find_components, jolle annetaan listat verkon solmuista ja kaarista. Funktion tulee palauttaa lista komponenteista.

def find_components(nodes, edges):
    # TODO

if __name__ == "__main__":
    nodes = [1, 2, 3, 4, 5, 6, 7, 8]
    edges = [(1, 2), (1, 3), (2, 3), (4, 5), (4, 6), (5, 7), (6, 7)]
    print(find_components(nodes, edges)) # [[1, 2, 3], [4, 5, 6, 7], [8]]

    nodes = [1, 2, 3, 4, 5]
    edges = []
    print(find_components(nodes, edges)) # [[1], [2], [3], [4], [5]]

    nodes = [1, 2, 3, 4, 5]
    edges = [(1, 2), (1, 3), (1, 4), (1, 5)]
    print(find_components(nodes, edges)) # [[1, 2, 3, 4, 5]]