Datastructuren en algoritmen
In een graaf waarvan de kanten geen gewicht hebben, wil je vanaf een startknoop het kleinste aantal kanten naar elke andere knoop bepalen. Welke combinatie van zoekmethode en datastructuur is geschikt?
- ABreedte-eerst zoeken met een wachtrij
- BDiepte-eerst zoeken met een stack
- CBreedte-eerst zoeken met een stack
Antwoord en toelichting tonen
Antwoord: A. Breedte-eerst zoeken met een wachtrij
Breedte-eerst zoeken bezoekt knopen in volgorde van afstand: eerst die op één kant van de start, dan die op twee kanten, enzovoort. Door elke nieuw gevonden knoop achteraan een wachtrij te zetten en knopen vooraan weg te nemen, blijft deze volgorde (dichtstbijzijnde eerst) behouden, zodat het aantal kanten bij het eerste bereiken van een knoop het kortste is. Diepte-eerst zoeken (met recursie of een stack) gaat langs één pad zo ver mogelijk door en kan een knoop dus eerst via een omweg bereiken; kortste afstanden zijn niet gegarandeerd. Wie een stack gebruikt in plaats van een wachtrij, krijgt een doorloop die op diepte-eerst zoeken lijkt.