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)?

  1. AA, C, B, E, D
  2. BB, A, E, C, D
  3. 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.

Dit onderwerp oefenen Naar de onderwerppagina

Meer vragen over Datastructuren en algoritmen

  1. Een functie f(x, y) is gedefinieerd als „als y gelijk is aan 0, geef x terug; geef anders f(y, x mod y) terug”. Wat is de teruggegeven waarde van f(84, 36), en hoe vaak wordt f aangeroepen, de eerste aanroep meegerekend?
  2. Een functie fib(n) voor Fibonaccigetallen is met recursie gedefinieerd als „als n kleiner dan of gelijk aan 1 is, geef n terug; geef anders fib(n−1) + fib(n−2) terug”. Hoe vaak wordt fib aangeroepen als fib(5) wordt aangeroepen, de eerste aanroep meegerekend?
  3. Je betaalt 8 yen met munten van 1 yen, 4 yen en 6 yen. Welke uitspraak over het aantal munten dat een gretig algoritme kiest (dat eerst zoveel mogelijk van de grootste munt gebruikt), vergeleken met het minimale aantal munten, is juist?
  4. Een knapzak met capaciteit 8 wordt gevuld met voorwerpen gekozen uit vier voorwerpen met (gewicht, waarde) (2, 3), (3, 4), (4, 5) en (5, 6). Van elk voorwerp is er maar één, en voorwerpen kunnen niet worden gesplitst. Wat is de maximale totale waarde bij een totaal gewicht van hoogstens 8?
  5. Welke eigenschap van het Boyer-Moore-algoritme om een patroon in een tekenreeks te vinden is juist?