B2 Samenvatting

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 3

B2. 1 Getallen en geheugen.

1.1 Inleiding
In het programmeren zijn er veel complexe variabelen. Een datastructuur bepaalt hoe je
deze gegevens opslaat en in welke mate van efficiënte ze worden opgeslagen.

Hoe vaak en op welke manier je de gegevens opslaat en uitleest heeft invloed op de


efficiëntie van een bepaald datastructuur.

1.2 Getallen opslaan


De Von Neumann structuur splits alle hardware in 2 delen. De rand en kern apparatuur.
De processor en het intern geheugen vormen de kernapparatuur. De processor heeft
de volgende taken:

•ophalen van instructies en gegevens uit intern geheugen


•laten uitvoeren van berekeningen door rekenorgaan
•laten opslaan van resultaten in intern geheugen
•regelen van de uitvoer van gegevnes bijv naar een beeldscherm

In het intern geheugen staan miljarden getallen. Elk heeft een adres. De procesor stuur
een adres naar het geheugen en dat stuurt dan de waarde terug. Om een waarde op te
slaan stuurt de processor het adres en de nieuwe waarde.
De processor weet niet welke waarde op elk adres staat en moet dit elke keer uitlezen.

1.3 Booleans en integers


Boolean = datatype dat true of false kan zijn
Integer = Heel getal. Wordt gw opgeslagen op het gewenste adres

1.4 Kommagetallen
Float = kommagetal
Benaderen = een limiet stellen op hoeveel cijfers je achter de komma wil of hoevaak je
door 10 deelt. Je maakt er dus een niet volledig maar meer een afgerond getal van.

2.2 Arrays
Array = een verzameling van getallen. Je kunt ze achter elkaar in het intern geheugen
opslaan.

Een array wordt aangemaakt met een aantal plekke/adressen. Als je van te voren niet
weet hoeveel plekken je nodig zal hebben kan je een dynamisch array gebruiken.
Dynamisch array groeit mee als er nieuwe gegevens in moeten worden opgeslagen.

Ook in een dyn. Array kan de processor maar 1 waarde per keer zien. Ook als je de
array wil verplaatsen moet dat 1 per keer.
2.4 Lijsten
Een lijst is ook een verzameling getallen, maar hier hoef je nooit gegevens te
verplaatsen als je een nieuw element toevoegt. Elk element wordt in 2 adressen
opgeslagen. 1 is de waarde, 2 is waar het volgende element is <- dit is dus het adres
van het volgende element.

3.2 Records
Record = een verzameling gegevens van vers typen. De typen staan van tevoren vast.
Bv: kassasysteem een integer voor de prijs en een string voor de naam.

Elk element van een record noem je een veld. Een veld heeft een sleutel <-de naam van
het veld. Elk veld heeft ook een waarde.

3.3 Contactenlijst
Een contactenlijst combineert alle voorgenoemde structuren.

Belangrijke punten:
• Je gebruikt een dynamiasche array of een lijst, want je weet de lengte van te voren niet.
• Elk contact is een recor met strings en integers
• Je wil de contacten op alfabetische volgorde ordenen. Hiervoor maak je een lijst van
alle contacten die met de letter beginnen. Daarna maak je een grote lijst van de lijsten.
Het wijzigen van de voornaam wordt nu wat trager, maar gelukkig gebeurt dat zelden.

Een radix tree wordt gebruikt in de 'An' en 'Alex' zijn 2 tussenlijsten. Alex en Alexander
praktijk (een meer extreme variant). zouden beide in de 'Alex' tussenlijst terecht komen
Deze datastructuur maakt
automatisch 'tussenlijsten' wanneer
dat nodig is. De groepen worden
geordend op hun longest prefix <- het
langste stuk tekst waarmee ze
beginnen.
4. Trees
In een lijst heeft ieder element altijd max 1 volgend element. Maar wat als ieder
element door verwijst naar 1 of meer volgende elementen. Dan ontstaat de
datastructuur genaamd tree.

Elk element noem je een knoop. Elke knoop heeft een waarde.
Knopen kunnen kinderen hebben <- de elementen waar ze naar
verwijzen. Zo hebben knopen ook een ouder.
De bovenste knoop (zonder ouder)) = wortelknoop
Knopen zonder kinderen = bladeren

Een speciale soort tree is de binary tree. Daar heeft elke knoop max 2 kinderen.
Dit zijn het linkerkind en het rechterkind.

In de tree hierboven zijn ee blauwe knopen zelf ook weer een tree. Zo kan je dus ook
een linkerboom en een rechterboom hebben.

De boom hierboven is ook een binary search tree. Deze trees kun je heel efficient
waardes in opzoeken, maar het moet aan 2 criteria voldoen:

• De waardes van de linkerboom moeten kleiner of gelijk zijn aan de knoop waar ze bij
horen.
• De waardes van de rechterboom moeten groter of gelijk zijn aan de knoop waar ze bij
horen.

You might also like