ALGORITMEN EN DATASTRUCTUREN PDF

Levertijd We doen er alles aan om dit artikel op tijd te bezorgen. Het is echter in een enkel geval mogelijk dat door omstandigheden de bezorging vertraagd is. Bezorgopties We bieden verschillende opties aan voor het bezorgen of ophalen van je bestelling. Welke opties voor jouw bestelling beschikbaar zijn, zie je bij het afronden van de bestelling. Discover the difference between making a robot move and making a robot think.

Author:Akijin Vimi
Country:Greece
Language:English (Spanish)
Genre:Finance
Published (Last):28 November 2005
Pages:457
PDF File Size:8.72 Mb
ePub File Size:16.30 Mb
ISBN:194-9-19448-522-6
Downloads:2517
Price:Free* [*Free Regsitration Required]
Uploader:Arashijora



We nemen aan dat u deze presentatie genoten. Om het te downloaden, raad, alsjeblieft, deze presentatie aan je vrienden in de sociale netwerken. De knoppen zijn een beetje lager. Dank je! Gepubliceerd Martina Lemmens Laatst gewijzigd meer dan 6 jaar geleden. Hoe werken dynamische datastructuren eigenlijk? Boost Zeer uitgebreid. Een template is erg geschikt voor het implementeren van een datastructuur. Een Abstracte Base Class per datastructuur maakt gebruik onafhankelijk van de implementatie.

Denk aan numerieke invoervelden. Er bestaat nog een andere methode: reverse polish notation RPN of postfix genoemd. Prefix: operator operand operand Infix: operand operator operand Postfix: operand operand operator Voordelen postfix t.

Modern Geen haakjes nodig Eenvoudiger te bereken m. Stack We zullen eerst een postfix calculator maken en daarna een infix naar postfix convertor. Lees karakter voor karakter in. Als een ingelezen karakter geen haakje of operator is dan kan dit meteen worden doorgestuurd naar de uitvoer.

Een haakje openen wordt altijd op de stack geplaatst. Als we een operator inlezen dan moeten we net zo lang operatoren van de stack halen en doorsturen naar de uitvoer totdat we: een operator op de stack tegenkomen met een lagere prioriteit of een haakje openen tegenkomen of totdat de stack leeg is.

Daarna moet de ingelezen operator op de stack worden geplaatst. Als we een haakje sluiten inlezen dan moeten we net zo lang operatoren van de stack halen en doorsturen naar de uitvoer totdat we een haakje openen op de stack tegenkomen.

Dit haakje openen moet wel van de stack verwijderd worden maar wordt niet doorgestuurd naar de uitvoer. Als we einde van de invoer bereiken moeten we alle operatoren van de stack halen en doorsturen naar de uitvoer.

Array is statisch. Niet gebruikte gedeelte is overhead. Lijst is dynamisch. Heeft overhead van 1 pointer per element Zie Zie dictaat hoofdstuk 6. Een generiek algoritme kan op verschillende datatypes containers toegepast worden.

Generic programming is dus niet OOP. Met behulp van iterators kun je een algoritme op de objecten in een container uitvoeren.

De algoritmen zijn zo efficient mogelijk geen inheritance en virtuele functies gebruikt. Je kunt eigen algoritmen, containers en iteratoren toevoegen. Sleutel moet orgineel zijn. De containers maken kopietjes van de elementen die erin gestopt worden.

Als je dat niet wilt dan moet je een container met pointers gebruiken. Alle objecten in een container zijn van hetzelfde type. Dat kan wel een polymorf pointertype zijn! Welke versie is beter?

Kan dat niet eenvoudiger? Hoe kun je een deel van een container printen? Zie Week 2. De bool geeft aan of het invoegen gelukt is en de iterator geeft de plek aan waar ingevoegd is. Verwijderen met erase Een te verwijderen element wordt automatisch opgezocht. Je kunt ook een iterator meegeven of een range 2 iteratoren. Zoeken met find Geeft een iterator terug naar de plaats waar het element staat en geeft end terug als element niet gevonden is.

Zoeken met count Geeft het aantal keer dat een element voorkomt 0 of 1. Returntype is een iterator. Deze iterator geeft de plek aan waar ingevoegd is. Alle gevonden elementen worden verwijderd.

Zoeken met find Geeft een iterator terug naar de plaats waar het eerste gevonden element staat en geeft end terug als element niet gevonden is. Wat is de uitvoer? Wat verandert er als we de set vervangen door een multiset? Als de key al in de map zit wordt een reference naar de bijbehorende value teruggegeven. Als de key niet aanwezig in de map dan wordt deze key toegevoegd met de default value default constructor. Elke class die aan deze afspraak voldoet is als iterator te gebruiken.

Speciale iterators Insert-iterators een soort cursor in insert mode. Een range wordt aangegeven door twee iteratoren i1 en i2. In de wiskunde zouden we dit noteren als [i1, i2. Sommige containers hebben voor bepaalde bewerkingen specifieke memberfuncties.

Omdat het generieke algoritme krachtigere iteratoren nodig heeft dan de container kan leveren. Omdat de specifieke memberfunctie sneller is dan het generieke algoritme. Kijk dus voordat je een generiek algoritme gebruikt altijd eerst of er een specifieke memberfunctie is. Type int is nu een template parameter compile time variabel en 0 is nu variabel! De lambda functie wordt gedefinieerd op de plaats waar het functie object nodig is.

Een lambda functie kan dus als predicate gebruikt worden. Dit is toch veel simpeler! De verzameling van identifiers wordt een closure genoemd.

Nederlands: in sluiting. Deze closure wordt tussen [ en ] opgegeven. Wat is beter? Bij een lambda functie die die dit niet kan moet het return type worden opgegeven. Zeeslag Dammen, Schaken, Go, … Hoe vind je de beste zet? Bouw een game tree. Pas het minimax algoritme toe. Gebruik alpha-beta pruning om minimax sneller te maken. Game tree Zie Handouts Backtracking algoritme met minimax strategie! Mens 4? Idee: sla berekende posities op en zoek voordat je rekent.

Waarom is dit nodig? Idee van Remco Boom. Transpositiematrix weggooien na berekenen van een computerzet. Algoritme kan verliezen: algoritme zoals tot nu besproken bevat een BUG! Kan niet tegen zijn verlies ;- gevonden en hersteld door Marc Cornet. Edge verbind twee vertices. In een directed graph digraph hebben de edges een richting. Vertex v is adjacent to w als er een edge is van v naar w.

Edge heeft mogelijk cost of weight. Belangrijk algoritme: bepalen shortest path. Benodigde geheugen O V 2. Niet geschikt voor sparce graphs. Adjacency list Maak voor elke vertex een lijstje met uitgaande edges adjacent vertice met de bijbehorende costs.

Benodigde geheugen O E. Single source algoritme Uitgaande van een start vertex wordt het kortste pad naar alle andere vertices berekend. Geldt voor alle SP algoritmen. Je kunt dan meteen de previous pointer goed zetten. Volgorde van de te bezoeken vertices kan als volgt bepaald worden: Zet start vertex in een queue.

Zolang queue niet leeg: Haal vertex v uit queue. Zet vertex w in de queue. Inzetten en uithalen is O 1.

BORIS SHEIKO BOOK PDF

Summary: Algoritme en datastructuren Samenvating + Oefentoets

Pro tip: We notice that you are not logged in. There are growing features that are only available for users who are logged in. Basically, VisuAlgo can be customized for you. VisuAlgo user account is free and you can register now. Featured story: Visualizing Algorithms with a Click.

GHOSTSCRIPT RASTERIZE PDF

Algoritmen en Datastructuren

We nemen aan dat u deze presentatie genoten. Om het te downloaden, raad, alsjeblieft, deze presentatie aan je vrienden in de sociale netwerken. De knoppen zijn een beetje lager. Dank je!

Related Articles