1.Makkelijk
Wat wordt in een representatie als adjacency list (buurlijst) van een graaf per knoop opgeslagen?
- AEen rij van V Booleaanse waarden
- BHet totale aantal kanten in de graaf
- CEen lijst van de buurknopen
- DHet kortste pad naar elke andere knoop
2.Makkelijk
Wat doet een hashfunctie in een hashtabel?
- ATelt hoeveel sleutels er zijn opgeslagen
- BVersleutelt de waarden in de tabel
- CBeeldt een sleutel af op een index in de tabel
- DSorteert de sleutels in de tabel
3.Makkelijk
Wat is het bepalende kenmerk van een set (verzameling) als abstract datatype?
- AZe staat alleen toegang aan één uiteinde toe
- BZe slaat elementen gesorteerd op
- CZe slaat elementen op zonder duplicaten
- DZe slaat sleutel-waardeparen op
4.Gemiddeld
Een knoop in een binaire zoekboom heeft een rechtersubboom. Waar staat zijn inorder-opvolger?
- ADe meest linkse knoop van zijn rechtersubboom
- BAltijd zijn ouder
- CAltijd zijn rechterkind
- DDe meest rechtse knoop van zijn linkersubboom
5.Gemiddeld
Hoe wordt een nieuw element in een binaire heap ingevoegd?
- APlaats het in de wortel en laat het omlaag zakken (sift down)
- BPlaats het aan het eind van de array en laat het omhoog zakken (sift up) zolang het de heap-eigenschap schendt
- CBouw de hele heap opnieuw op
- DVoeg het op de gesorteerde positie in door alle grotere elementen één plaats naar rechts te verschuiven
6.Gemiddeld
Waarom is het doorlopen van een array in de praktijk vaak veel sneller dan het doorlopen van een gekoppelde lijst van dezelfde lengte?
- AEen array doorlopen kost in totaal O(1), een gekoppelde lijst doorlopen O(n)
- BArrays gebruiken minder instructies om waarden te vergelijken
- CArray-elementen liggen aaneengesloten, zodat ze de CPU-cache goed benutten
- DGekoppelde lijsten slaan elementen altijd op schijf op
7.Moeilijk
Je moet uit een stroom van n getallen de k kleinste waarden bewaren met O(k) geheugen. Welke aanpak werkt in O(n log k) tijd?
- AEen gesorteerde array van alle n waarden
- BEen min-heap met alle n waarden, waaruit aan het eind de k kleinste worden gehaald
- CEen FIFO-queue van de laatste k waarden
- DEen max-heap van grootte k, waarvan je de wortel vervangt als er een kleinere waarde binnenkomt
8.Moeilijk
In een circulaire buffer kan front == rear zowel leeg als vol betekenen. Wat is een gangbare manier om ze te onderscheiden?
- AMaak de buffergrootte een macht van twee
- BHoud een apart aantal elementen bij, of laat altijd één plaats ongebruikt
- CSla front en rear op in dezelfde variabele
- DMaak de buffer altijd leeg als front gelijk is aan rear, zodat de toestand leeg is
Antwoordenblad
- 1. C · Een lijst van de buurknopen
- 2. C · Beeldt een sleutel af op een index in de tabel
- 3. C · Ze slaat elementen op zonder duplicaten
- 4. A · De meest linkse knoop van zijn rechtersubboom
- 5. B · Plaats het aan het eind van de array en laat het omhoog zakken (sift up) zolang het de heap-eigenschap schendt
- 6. C · Array-elementen liggen aaneengesloten, zodat ze de CPU-cache goed benutten
- 7. D · Een max-heap van grootte k, waarvan je de wortel vervangt als er een kleinere waarde binnenkomt
- 8. B · Houd een apart aantal elementen bij, of laat altijd één plaats ongebruikt
Volledige stapsgewijze oplossingen: oefen dit onderwerp op examproblems.com.