In de figuur zie je het fictieve wegennet van Vlaanderen, anno 1961.
De kaart stellen we voor door een dictionary. De keys van de dictionary zijn de steden op de kaart. De value die hoort bij een key is een set met alle steden die je vanuit de gegeven stad rechtstreeks kan bereiken.
{
'Brugge': {'Antwerpen', 'Gent'},
'Kortrijk': {'Gent'},
'Gent': {'Antwerpen', 'Kortrijk', 'Brugge'},
'Antwerpen': {'Brussel', 'Brugge', 'Gent'},
'Brussel': {'Antwerpen', 'Hasselt'},
'Hasselt': {'Brussel'}
}
Twee voorbeelden:
Je mag er steeds vanuit gaan dat wanneer je stad X rechtstreeks kan bereiken vanuit stad Y, het omgekeerde ook geldig is en dat de dictionary voldoet aan dit principe. Er is ook nooit een stad opgenomen die met geen enkele andere stad verbonden is.
Programmeer volgende vier functies:
>>> kaart = {'Brugge': {'Gent', 'Antwerpen'}, 'Kortrijk': {'Gent'}, 'Gent': {'Antwerpen', 'Kortrijk', 'Brugge'}, 'Antwerpen': {'Gent', 'Brussel', 'Brugge'}, 'Brussel': {'Hasselt', 'Antwerpen'}, 'Hasselt': {'Brussel'}}
>>> bestaat_weg('Brussel', 'Hasselt', kaart)
True
>>> bestaat_weg('Antwerpen', 'Kortrijk', kaart)
False
>>> geen_dubbelburen('Brussel', 'Hasselt', kaart)
{'Antwerpen'}
>>> geen_dubbelburen('Antwerpen', 'Kortrijk', kaart)
{'Brussel', 'Brugge'}
>>> bereikbaarheid_meest_afgelegen_stad(kaart)
1
>>> bestaat_route(['Hasselt', 'Brussel', 'Antwerpen', 'Brugge', 'Gent', 'Kortrijk'], kaart)
True
>>> bestaat_route(['Brugge', 'Hasselt', 'Brussel'], kaart)
False