Hoofdstuk 8 Data Abstraction

Redacteuren: Groep 8

Wat is belangrijk?

  • 8.1 Het is belangrijk om te weten welke data structuren er zijn. Deze stof hoort bij de basiskennis voor programmeurs. Een MIKker moet met programmeurs kunnen praten, dus deze kennis is erg van belang.
  • 8.2 Het is belangrijk om te weten wat een pointer is, alleen dit stukje uit deze paragraaf is belangrijk.
  • 8.3 Deze paragraaf gaat verder op paragraaf 8.1, je moet de uitvoering van de verschillende data structuren snappen.
  • 8.5 Dit komt terug in programmeertalen, een MIKker moet met programmeurs kunnen communiceren.
  • 8.6 Ook het werken met classes en objecten is terug te vinden in programmeertalen.

Wat is onbelangrijk?

  • 8.4 Dit is een voorbeeld van paragraaf 8.3.
  • 8.7 Deze paragraaf gaat verder op paragraaf 8.2, er worden nog meer details gegeven.

Tien beste tentamenvragen (inclusief antwoorden

  1. Wat is een boom (tree) volgens het boek? Antwoord: Een boom, ofwel tree is een verzameling waarvan de posities een hiërarchische orde hebben dat gelijk is aan een organigram van een typisch bedrijf. (Uchaindani Watson)
  2. Geef het belangrijkste verschil tussen een stack en een queue. Gebruik in je antwoord de termen FIFO en LIFO en laat zien dat je weet waar deze afkortingen voor staan en wat hier mee bedoeld wordt. Antwoord: Bij een stack worden elementen aan dezelfde kant van de lijst toegevoegd en verwijderd, waardoor een last-in-first-out (LIFO) systeem ontstaan, waarbij het laatst toegevoegde element dus als eerste verwijderd wordt. Bij een queue worden elementen aan de ene kant van de lijst toegevoegd en aan de andere kant verwijderd, waardoor een first-in-first-out (FIFO) systeem ontstaat, waarbij het element wat als eerste is toegevoegd, dus ook weer als eerste wordt verwijderd. (Olav Trauschke)
  3. Noem 4 van de behandelde datastructuren en licht deze kort toe. Antwoord: List, stack, queue en tree. Een list is een geordende lijst met gegevens Het begin wordt ‘head’, het einde ‘tail’ genoemd. Een stack en queue zijn beiden speciale vormen van een list. Een stack is een lijst waarbij gegevens alleen bij de ‘head’ kunnen worden toegevoegd en verwijderd. Head is hier ‘top’, tail ‘bottom’. Een queue is een lijst waarbij gegevens alleen kunnen worden verwijderd vanaf de head en alleen kunnen worden toegevoegd bij de tail. Een tree is een collectie van welke de gegevens een hiërarchische ordening hebben. Elke positie in een tree heet een ‘node’. (Lia de Niet)
  4. Wat is het verschil tussen een homogene en een heterogene array? Antwoord: Een homogene array is een blok van data dat helemaal bestaat uit hetzelfde type (bijvoorbeeld: per maand het salaris (een reeks integers) van een persoon). Een heterogene array is een blok van data dat bestaat uit verschillende typen data (bijvoorbeeld: de gegevens van een persoon: naam (een string) en leeftijd (een integer)). (Margie Liauw)
  5. Wat is het verschil tussen een user-defined data type en een abstract data type? Antwoord: User-defined data types kunnen door de gebruiker zelf gemaakt worden. Primitieve data types zoals ''int'' kunnen zo onder één naam worden opgeslagen. bijvoorbeeld: '''define type''' StackType '''to be''', met daaronder opgeslagen ''int Age'' en ''char Name[25];'' Abstract data types zijn user-defined data types die naast het definiëren van types ook nog iets uit voeren (operations). Bijvoorbeeld: StackOne.push(25); (Eva Surquin)
  6. Welke stelling is juist? 1. Een lijst(list) kan een boom(tree) zijn, maar een boom geen lijst 2. Een lijst kan een boom zijn en een boom kan een lijst zijn. Antwoord: Stelling 1: Een lijst kan wel een boom zijn (unary tree), maar een boom is geen lijst. (Esmée Tensen)
  7. Wat is een circular queue? Antwoord: Dit is een manier om in een queue nieuwe waardes toe te voegen/verwijderen. De lijst begint als de laatste waarde is bereikt. Dit is dan een loop. (Frank Horenberg)
  8. In welk opzicht zijn abstracte data types en klassen soortgelijke en in welk opzicht zijn ze verschillend? Antwoord: Abstracte data types en klassen zijn beiden templates voor het maken van instanties van een type. Klassen worden echter geassocieerd met overerving en een klasse kan een verzameling van alleen procedures beschrijven. (Laura Bijman)/
  9. Een list, stack en tree zijn voorbeelden van datastructuren. Geef van de volgende begrippen aan bij welk datastructuur ze horen: depth, pushing, head, tail, bottom, node. //Antwoord: list: head en tail. Stack: pushing en bottom. Tree: depth en node. (Naomi Uwugiaren)
  10. Geef de verschillen tussen stacks, queues en lists. Antwoord: Stacks en queues zijn een speciale soort van list. Bij normale lists kunnen ingevoerde waardes overal in de list gestopt worden en ook kan op elke plek en waarde uit de list worden gehaald. Bij een stack kunnen er alleen maar waardes bij de hoofd(head) eruit worden gehaald en erin gestopt worden. En bij een queue kan de data er alleen bij de staart(tail) in, en alleen bij het hoofd kan er data uit worden gehaald.(Hans Teunisse)

Nieuwe tien beste vragen

  1. Voor het opslaan van welke list biedt een contiguous list de beste uitkomst? Antwoord: Een static list. (Sicco Chanier)
  2. Geef het belangrijkste verschil tussen een stack en een queue. Gebruik in je antwoord de termen FIFO en LIFO en laat zien dat je weet waar deze afkortingen voor staan en wat hier mee bedoeld wordt. Antwoord: Bij een stack worden elementen aan dezelfde kant van de lijst toegevoegd en verwijderd, waardoor een last-in-first-out (LIFO) systeem ontstaan, waarbij het laatst toegevoegde element dus als eerste verwijderd wordt. Bij een queue worden elementen aan de ene kant van de lijst toegevoegd en aan de andere kant verwijderd, waardoor een first-in-first-out (FIFO) systeem ontstaat, waarbij het element wat als eerste is toegevoegd, dus ook weer als eerste wordt verwijderd. (Olav Trauschke)
  3. Noem 4 van de behandelde datastructuren en licht deze kort toe. Antwoord: List, stack, queue en tree. Een list is een geordende lijst met gegevens Het begin wordt ‘head’, het einde ‘tail’ genoemd. Een stack en queue zijn beiden speciale vormen van een list. Een stack is een lijst waarbij gegevens alleen bij de ‘head’ kunnen worden toegevoegd en verwijderd. Head is hier ‘top’, tail ‘bottom’. Een queue is een lijst waarbij gegevens alleen kunnen worden verwijderd vanaf de head en alleen kunnen worden toegevoegd bij de tail. Een tree is een collectie van welke de gegevens een hiërarchische ordening hebben. Elke positie in een tree heet een ‘node’. (Lia de Niet)
  4. Wat is het verschil tussen een homogene en een heterogene array? Antwoord: Een homogene array is een blok van data dat helemaal bestaat uit hetzelfde type (bijvoorbeeld: per maand het salaris (een reeks integers) van een persoon). Een heterogene array is een blok van data dat bestaat uit verschillende typen data (bijvoorbeeld: de gegevens van een persoon: naam (een string) en leeftijd (een integer)). (Margie Liauw)
  5. Wat is het verschil tussen een user-defined data type en een abstract data type? Antwoord: User-defined data types kunnen door de gebruiker zelf gemaakt worden. Primitieve data types zoals ''int'' kunnen zo onder één naam worden opgeslagen. bijvoorbeeld: '''define type''' StackType '''to be''', met daaronder opgeslagen ''int Age'' en ''char Name[25];'' Abstract data types zijn user-defined data types die naast het definiëren van types ook nog iets uit voeren (operations). Bijvoorbeeld: StackOne.push(25); (Eva Surquin)
  6. Noem de verschillen tussen de volgende termen in machine taal: immediate addressing, direct addressing en indirect addressing. Antwoord: Bij immediate addressing wordt een memory cell zelf direct aangepast. Bij direct addressing wordt een memory cell aangepast door een cel met een bepaald adres. Bij indirect addressing wordt met een adres weer een ander adres opgegeven, die de data bevat. (Rutger de Graaf)
  7. Wat is een pointer en hoe wordt dit voor gebruikt bij data structures? Antwoord: Een pointer is een variabele die als waarde een geheugenadres bevat. Bij data structures worden pointers gebruikt om een adres op te vragen waar data items worden opgeslagen.(Ton Koning)
  8. Noem een verschil tussen een class en een interface type // Antwoord: Alle methods in een inferface type worden automatisch public. of Een interface type heeft geen instance variables. of Alle methods in een interface type zijn abstract. Zij hebben geen implementatie. (Pierrette Bernadina)
  9. Een list, stack en tree zijn voorbeelden van datastructuren. Geef van de volgende begrippen aan bij welk datastructuur ze horen: depth, pushing, head, tail, bottom, node. //Antwoord: list: head en tail. Stack: pushing en bottom. Tree: depth en node. (Naomi Uwugiaren)
  10. Wat is de functie van een NULL (of NIL) pointer? Antwoord: wordt aan het einde van een lijst geplaatst om aan te geven dat er na de NULL pointer niets verder is ingevoerd. (Rutger de Graaf)

Voorgestelde tentamenvragen (inclusief antwoorden)

Niet-redacteuren mogen hier tentamenvragen voorstellen.

  1. Hoe wordt een boom genoemd waarvan de 'ouder/node'-positie maar 2 aftakkingen heeft? Antwoord: Een binaire boom (Sicco Chanier)
  2. Voor het opslaan van welke list biedt een contiguous list de beste uitkomst? Antwoord: Een static list. (Sicco Chanier)
  3. Wat is de functie van een NULL (of NIL) pointer? Antwoord: wordt aan het einde van een lijst geplaatst om aan te geven dat er na de NULL pointer niets verder is ingevoerd. (Rutger de Graaf)
  4. Noem de verschillen tussen de volgende termen in machine taal: immediate addressing, direct addressing en indirect addressing. Antwoord: Bij immediate addressing wordt een memory cell zelf direct aangepast. Bij direct addressing wordt een memory cell aangepast door een cel met een bepaald adres. Bij indirect addressing wordt met een adres weer een ander adres opgegeven, die de data bevat. (Rutger de Graaf)
  5. Wat betekent de volgende data-structuur FIFO? Antwoord: FIFO staat voor First-in-First-out. Kortom, gegevens die als eerste worden opgeslagen zullen ook weer als eerste worden verwijderd (en andersom). (Martin van Kuik)
  6. Wat is het verschil tussen een homogeneous array (homogene lijst) en een heterogeneous array (heterogene lijst)? Antwoord: Een homogeneous array bestaat het hetzelfde type informatie, daarentegen bestaat een heterogeneous array uit verschillende typen informatie. (Martin van Kuik)
  7. Bij het doornemen van een programma van de bank komen we diverse arrays tegen. Het eerste array wat je tegenkomt is een array met componenten over de gegevens van de bankrekeninghouder met onder andere zijn/haar naam, leeftijd en telefoonnummer. Later in het programma komen wij nog een tweede array tegen met de hoeveelheid geld die op de rekening staat en eventueel op de spaarrekening. Wat voor type array is het eerste array en het tweede array? Antwoord: eerste array hetrogeneous array tweede array: homogeneous array. (Ton Koning)
  8. Wat is een pointer en hoe wordt dit voor gebruikt bij data structures? Antwoord: Een pointer is een variabele die als waarde een geheugenadres bevat. Bij data structures worden pointers gebruikt om een adres op te vragen waar data items worden opgeslagen.(Ton Koning)
  9. Arrays, lists en stacks zijn allemaal voorbeelden van data structuren. Waarvoor zijn data structuren nodig? Antwoord: Datastructuren bepalen op welke wijze gegevens/informatie opgeslagen, gewijzigd en teruggevonden kunnen/kan worden. (Safira Wortel)
  10. Zijn dynamische (data) structuren over het algemeen makkelijker te beheren dan statische structuren? Verklaar je antwoord. Antwoord: Over het algemeen zijn dynamische structuren niet makkelijker te beheren dan statische structuren. Bij dynamische structuren moeten oplossingen gevonden worden voor het toevoegen of verwijderen van items en het vinden van de geheugenruimte die nodig is wanneer de gegevensstructuur groter wordt, terwijl bij statische structuren dit niet nodig is. (Safira Wortel)
  11. Noem een verschil tussen een class en een interface type // Antwoord: Alle methods in een inferface type worden automatisch public. of Een interface type heeft geen instance variables. of Alle methods in een interface type zijn abstract. Zij hebben geen implementatie. (Pierrette Bernadina)
  12. Wat is een 'callback"? // Antwoord: Een callback is een mechanisme voor een specifieke code later wordt uitgevoerd (Pierrette Bernadina) //
  13. Wat is het verschil tussen een stack en een queue? //antwoord: stack: een list waarvan de elementen alleen bij het begin kunnen worden verwijderd of toegevoegd. Queue: een list waarvan de elementen alleen bij het begin kunnen worden verwijderd en alleen bij het einde kunnen worden toegevoegd (Rodayna Aaliouli) //
  14. Waar horen de afkortingen LIFO en FIFO bij en waar staan deze afkortingen voor? //antwoord: LIFO staat voor Last-In-First-Out en hoort bij stacks. FIFO staat voor First-In-First-Out en hoort bij queue (Rodayna Aaliouli) //
  15. Wat is een andere naam voor program counter en waarvoor wordt dit gebruikt? //Antwoord: Een andere naam voor program counter is instruction pointer, het wordt gebruikt om het adres van de volgende instructie die moet worden uitgevoerd te houden. (Lakisha Helstone)
  16. Hoe wordt ( c x (i - 1) ) +( j - 1) ook wel genoemd? Antwoord: Address polynomial. (Lakisha Helstone)
Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License