In de vorige opgaves hanteerden we de afspreek dat we de knopen in de tupel die een boog voorstelt alfabetisch zetten. Aangezien de volgorde in een tupel van belang is, kunnen we deze eenvoudig gebruiken om gerichte grafen te modelleren: de knoop waar de boog vertrekt zet je vooraan (op index 0) en de knoop waar de boog toekomt zet je erachter (op index 1).

💻 Programmeeroefening - Straten in het dorp

Kijk eens naar de gerichte grafe van de straten in het dorp.

eenrichting-grafe

class Grafe:
    def __init__(self, knopen, bogen):
        self.knopen = knopen
        self.bogen = bogen

Opdracht

  • Kopieer de klasse Grafe in de editor hieronder.
  • Maak een verzameling knopen aan met de knopen van de grafe van straten in het dorp.
  • Maak een verzameling bogen aan, met de bogen van de grafe van straten in het dorp.
  • Zorg ervoor dat de knopen in elke boog in de juiste volgorde staan.
  • Gebruik deze verzamelingen om de grafe aan te maken, plaats deze in een variabele straten.
  • print vervolgens alle knopen van de grafe als een gesorteerde lijst, met sorted(straten.knopen).
  • print tenslotte alle bogen van de grafe als een gesorteerde lijst, met sorted(straten.bogen).