Datastructuren en algoritmen
Voor de taken A tot E gelden de volgordebeperkingen „A vóór C”, „B vóór C”, „C vóór D”, „B vóór E” en „E vóór D”. Welke volgorde voldoet aan alle beperkingen (een resultaat van topologisch sorteren)?
- AA, C, B, E, D
- BB, A, E, C, D
- CB, E, D, A, C
Antwoord en toelichting tonen
Antwoord: B. B, A, E, C, D
In B, A, E, C, D komen A en B vóór C, C en E vóór D, en B vóór E, dus aan alle vijf beperkingen is voldaan. A, C, B, E, D voert C vóór B uit, wat „B vóór C” schendt, en B, E, D, A, C voert D vóór C uit, wat „C vóór D” schendt. Topologisch sorteren rangschikt de knopen van een gerichte acyclische graaf (DAG) zo dat elke kant van eerder naar later wijst. Dat kan door herhaaldelijk een knoop zonder inkomende kanten te nemen (het algoritme van Kahn) of met diepte-eerst zoeken. Het antwoord is niet altijd uniek: dit voorbeeld heeft vijf geldige volgorden.