Stack:
Lokale variabele leven alleen voor een bepaalde tijd totdat de functie voorbij is.
Geheugen in de stack wordt opnieuw gebruikt.
LIFO
Dynamic memory management
Hierbij ga je dus memory reserveren en vrijgeven om zo je memory onder controle te
houden.
‘malloc(), realloc(), free(ptr)’
Deze memory staat altijd op de heap
Via de functie malloc kan je het aantal bytes reserveren wat je nodig hebt
Via de functie free kan je al dit geheugen weer vrijgeven. Let hierbij op dat free altijd een
pointer wil hebben
Als je memory vrij gaat geven wat niet gereserveerd was crasht het programma.
Met realloc kan je memory wat je via malloc hebt vrijgegeven opnieuw reserveren. Zie dit als
bijvoorbeeld je had eerst 64 nodig en je hebt nu bijvoorbeeld 50 nodig dan kan je dit omlaag
halen om zo het weer vrij te maken voor andere.
Dynamic array’s
Een gereserveerd stuk capaciteit is een array. Dit kan weer opnieuw worden veranderd door realloc
te doen.
Random access / lookup: dit betekent gewoon dat je op een specifiek punt in de array de
opgeslagen data bekijkt.
Append: hier wordt er een nieuw element toegevoegd aan het einde van de array. Kan zijn
dat er gebruik moet worden gemaakt van realloc.
Insertion: elementen kunnen worden toegevoegd in het midden van een array alleen moet
er hier wel voor worden geschoven.
Removal: als er een element wordt verwijderd moet alles wel worden opgeschoven dat het
weer achter elkaar zit.
, Linked list:
Voordeel van een linked list is dat het overal in het geheugen kan staan. Een element van een linked
list bevat namelijk altijd een waarde (data) en een pointer naar het volgende element.
Nadeel is dat een linked list duur is. Dus op het moment dat er iets verwijderd of toegevoegd worden
moet alle nodes de pointer weer naar de goede node hebben staan. Voor kleine codes niet handig
Single vs dubbel linked list: een single linked list wijst alleen vanaf een node naar de volgende node(-
>next) een dubbel linked list wijst ook naar de vorige node(->next, ->prev).
Access/lookup: hierbij verkrijg je de waarde bij een meegegeven index
Insertion: dit is het toevoegen van een nieuwe node tussen andere nodes. Hierbij moet je
erop letten dat de pointers wel weer goed worden gezet.
Removal: als er een node wordt verwijderd dan moet deze weer aan elkaar worden
gekoppeld door de pointer te herstellen
Dubbel linked list: het verschil met een linked list is dat deze ook verwijst naar de vorige.
Bij een dubbel linked list kan het verwijderden of toevoegen een stuk efficiënter.
Insertion: je moet allebei de pointers updaten.
Removal: hier moet je ook allebei de pointers updaten.
Stack:
De stack werkt altijd met een volgorde van LIFO(Last In – First Out) denk hierbij aan een lading
borden waar je om bij de onderste te komen altijd alles weg moet halen.
Push: voegt een element toe aan de top van de stack
Pop: deze functie verwijdert een element van de top van de stack en print deze waarde
Peek: deze functie kijkt naar de waarde op de top van de stack.
The benefits of buying summaries with Stuvia:
Guaranteed quality through customer reviews
Stuvia customers have reviewed more than 700,000 summaries. This how you know that you are buying the best documents.
Quick and easy check-out
You can quickly pay through credit card or Stuvia-credit for the summaries. There is no membership needed.
Focus on what matters
Your fellow students write the study notes themselves, which is why the documents are always reliable and up-to-date. This ensures you quickly get to the core!
Frequently asked questions
What do I get when I buy this document?
You get a PDF, available immediately after your purchase. The purchased document is accessible anytime, anywhere and indefinitely through your profile.
Satisfaction guarantee: how does it work?
Our satisfaction guarantee ensures that you always find a study document that suits you well. You fill out a form, and our customer service team takes care of the rest.
Who am I buying these notes from?
Stuvia is a marketplace, so you are not buying this document from us, but from seller davehuinink. Stuvia facilitates payment to the seller.
Will I be stuck with a subscription?
No, you only buy these notes for $4.83. You're not tied to anything after your purchase.