Datastructuren en algoritmen

Op een lege stack worden achtereenvolgens push 1, push 2, pop, push 3, push 4, pop, pop uitgevoerd. In welke volgorde komen de waarden die pop verwijdert eruit?

  1. A1, 2, 3
  2. B2, 3, 4
  3. C2, 4, 3
Antwoord en toelichting tonen

Antwoord: C. 2, 4, 3

Een stack is een last-in-first-out-structuur (LIFO): wat het laatst is toegevoegd, gaat er het eerst weer uit. Na push 1 en push 2 haalt pop de bovenste waarde 2 eraf en blijft 1 over. Daarna worden 3 en 4 erop gelegd, zodat er van boven naar beneden 4, 3, 1 ligt; de twee volgende pops halen dus eerst 4 en dan 3 eraf. De waarden komen er in de volgorde 2, 4, 3 uit, en op het eind blijft 1 op de stack. 1, 2, 3 is de volgorde die een wachtrij (first-in-first-out, FIFO) zou geven, die het eerst toegevoegde element als eerste verwijdert.

Dit onderwerp oefenen Naar de onderwerppagina

Meer vragen over Datastructuren en algoritmen

  1. In een lege wachtrij worden de elementen A, B en C in deze volgorde geplaatst. Daarna wordt er één element uitgehaald, wordt D toegevoegd en weer één uitgehaald, en wordt E toegevoegd en nog één uitgehaald. In welke volgorde worden de elementen uitgehaald?
  2. De expressie „3 4 + 2 * 5 −” in omgekeerde Poolse notatie (postfixnotatie) wordt geëvalueerd door elk getal op een stack te leggen en bij elke operator twee waarden eraf te halen, het resultaat te berekenen en dat weer op de stack te leggen. Wat is het resultaat? De linkeroperand van een operator is de waarde die het eerst op de stack is gelegd.
  3. Welke beschrijving van een botsing (collision) in een hashtabel is juist?
  4. De sleutels 10, 17, 24 en 3 worden in deze volgorde opgeslagen in een hashtabel van grootte 7 (posities 0 tot 6) met de hashfunctie h(k) = k mod 7. Botsingen worden opgelost met lineair proberen (linear probing): de positie schuift telkens één plaats op (na 6 komt 0) tot er een vrije plaats is gevonden. Op welke positie wordt sleutel 3 opgeslagen?
  5. Welke vergelijking van chaining (de elementen op dezelfde positie aan elkaar koppelen in een gelinkte lijst) en open adressering (een andere vrije positie in de tabel zoeken) als methoden om botsingen in een hashtabel af te handelen is juist? De bezettingsgraad (load factor) is het aantal opgeslagen elementen gedeeld door de grootte van de tabel.