Hogeschool HZ Zeeland 19 augustus 2003augustus 2003 Data Structuren & Algoritmen Week 3.

Slides:



Advertisements
Verwante presentaties
Algoritmen en Datastructuren (ALDAT)
Advertisements

Hogeschool HZ Zeeland 19 augustus 2003augustus 2003 Data Structuren & Algoritmen Week 1.
Hoofdstuk 8: Recursie.
EVMINX4 Week 3 Algoritmen en Datastructuren (ALDAT)
Hoofdstuk 20: GEGEVENSSTRUCTUREN.
Gegevensstructuren: list boxen en lijsten
Instructie Programmeren Task 8 5JJ70. PAGE 2 Task 8: Double Linked List Het doel van deze opdracht is: Het opbouwen van een tweetal klassen, die samen.
Practica Computerlinguistiek Tekst en uitleg:
PROS2 Les 11 Programmeren en Software Engineering 2.
Base: bewerkingen 2 soorten - Oplopend- Aflopend.
Datastructuren Analyse van Algoritmen en O
Datastructuren Analyse van Algoritmen en O
‘Inleiding programmeren in Java’ SWI cursus: ‘Inleiding programmeren in Java’ 4e college Woe 19 januari 2000 drs. F. de Vries.
Hogeschool HZ Zeeland 19 augustus 2003augustus 2003 Data Structuren & Algoritmen Week 5.
1 Tentamen 21 januari 2008 uitleg Algemene kennisvragen a)“Wat verstaan we onder de complexiteit van een algoritme?” –Cruciaal: wat gebeurt er met.
Hoofdstuk 6: Controle structuren
1 Datastructuren Sorteren: alleen of niet alleen vergelijkingen College 5.
1 Datastructuren Lijstjes (Stacks & Queues) Onderwerp 7.
Datastructuren Zoekbomen
1 Datastructuren Zoekbomen II Invoegen en weglaten.
1 Datastructuren Sorteren: alleen of niet alleen vergelijkingen (II) College 6.
De koektrommel of de grabbelton
‘Inleiding programmeren in Java’ Derde college Maandag 22 januari 2001 drs. F. de Vries.
Inleidend probleem Data structuur (hiërarchie van classes)
Numerieke Natuurkunde
MICPRG Les 11 Microcontroller Programmeren in C. 112 Datastructuren in C Werkgeheugen (PC en microcontroller): Statische datastructuren (vaste grootte):
Optuigen van datastructuren
Project OO-AD: Color Crazy Domien Nowicki, Bjorn Schobben.
Oefeningen Hoofdstuk 3.
Subversion Version control
Algoritmiek Object-georiënteerd Programmeren
1 Datastructuren Introductie tot de programmeeropgaven in C++ Jan van Rijn
JAVA1 H 22. COLLECTIONS FRAMEWORK. 1. INLEIDING. Collections framework Is een verzameling van data structuren, interfaces en algoritmen Meest voorkomende.
Hogeschool HZ Zeeland 19 augustus 2003augustus 2003 Data Structuren & Algoritmen Week 4.
1 Datastructuren Een informele inleiding tot Skiplists Onderwerp 13.
Arrays.
CSA, week 31 CSA week 3. CSA, week 32 Terugblik opdracht (client)  Stub creëren uitgaande van IOR ( string_to_object ) of stub creëren uitgaande van.
Sorteeralgoritmen. Sorteren: aanpak 1 Hoe ga je een rij getallen sorteren met PC? Sorteren door selectie (= selection sort): Zoek de kleinste waarde Sorteer.
Variabelen Part deux.. Variabelen week 3 0. Herhaling 1. De NullPointerException (p101) 2. Primitieven 3. Scope en levensduur van variabelen 4. Meerdere.
© b-boom.nl Meld aan op de website door in het aanmeldformulier uw gegevens in te voeren.
Les 7 Multiple Document Interface Programmeren met Visual Basic Karl Moens.
Project OO-AD: Color Crazy Domien Nowicki, Bjorn Schobben.
Variabelen Part deux.. Variabelen week 3 0. Herhaling 1. De NullPointerException (p101) 2. Primitieven 3. Scope en levensduur van variabelen 4. Meerdere.
Ordenen van gegevens Inleiding informatiesystemen © Sander Cox.
Tircms02-p les 2 Meer operatoren Arrays en pointers Types en conversie.
Tircms03-p les 4 Klassen. Abstracte datatypes in C struct stack { char info[100]; int top; }; void reset(stack *s) { s->top = -1; } void push(stack *s,
1 XSLT processing & control Datamodellering 2006.
Encapsulatie: Every man is an island upon himself.
Torens van Hanoi ● Uitgevonden door Franse Wiskundige Edouard Lucas in ● Beschreven in zijn wiskundig “spelletjesboek” Récréations Mathématiques.
Java Objectgeoriënteerd Programmeren in Java met BlueJ
Java Objectgeoriënteerd Programmeren in Java met BlueJ Hoofdstuk 8: Gebruikersinterface © 2014, Gertjan Laan, versie 2.
 C++ heeft een inheritance mechanisme  Manier om functionaliteit te ‘erfen’ van een parrent class ◦ Polymorphisme ◦ Zoals we het ook in C# kennen.
Variabelen. Wat zijn variabelen? Klassiek: een variabele houdt informatie bij. Klassiek: een variabele houdt informatie bij. bvb: int getal; getal = 5;
Herhaling: He who does not learn from history, is doomed to repeat it.
Welkom! maandag 16 November 2015 Les B-2.
Variabelen. Wat zijn variabelen? In een programmeertaal zijn er “dingen” nodig die ervoor zorgen dat het programma informatie voor korte of langere tijd.
Loops en errors Array's Random try catch for loop while loop do while loop.
GEGEVENSSTRUCTUREN IN.NET. Inleiding  Enumerated type  Structure  Collecties  Typed collections  Untyped collections.
Datastructuren voor grafen Algoritmiek. 2 Grafen Model van o.a.: –Wegennetwerk –Elektrische schakeling –Structuur van een programma –Computernetwerk –…
Datastructuren voor graafrepresentatie
Objectgeoriënteerd Programmeren
Gameprogrammeren: Objecten en geheugen
Gameprogrammeren: Lists en interfaces
Tinpro015b-les6 Templates.
Gameprogrammeren: Interfaces
Hoofdstuk 20: GEGEVENSSTRUCTUREN.
SQL Les February 2019.
Software Development fundamentals
Software Development fundamentals
Gameprogrammeren: Arrays
Transcript van de presentatie:

Hogeschool HZ Zeeland 19 augustus 2003augustus 2003 Data Structuren & Algoritmen Week 3

Hogeschool HZ Zeeland Onderwerpen Referenties Linked Lists Binary (search) trees Iterators

Hogeschool HZ Zeeland Referenties Opdacht vorige les… Hoe is het verschil in uitkomst te verklaren?

Hogeschool HZ Zeeland Geheugenmap bij intArr Elke geheugencel van intArr bevat de waarde van elke integer die in de array is opgeslagen ‘a’ bevat een kopie van de waarde van intArr[2] Als ‘a’ wijzigt, wijzigt intArr[2] dus niet mee int a Geheugen intArr[0] intArr[1] intArr[2] intArr[3]

Hogeschool HZ Zeeland Geheugenmap bij personArr Elke geheugencel van personArr bevat geen waarden, maar referenties naar stukjes geheugen die de data van die person bevatten ‘a’ bevat nu ook een kopie van de waarde van intArr[2]. Deze waarde is echter een referentie Als je gegevens van Person ‘a’ wijzigt, wijzigt intArr[2] nu dus wel mee. int a Geheugen personArr[0] personArr[1] personArr[2] personArr[3]

Hogeschool HZ Zeeland Referenties Primitieve datatypes (zoals int, double, float en long) gebruiken nooit referenties Objecten gebruiken altijd referenties – Ze moeten worden gecreëerd door new te gebruiken ( Person p = new Person(“Daan”);) – Bij toekenningen (bv. Person q = p;) wordt dus een kopie gemaakt van de referentie, zowel p als q wijzen dan naar hetzelfde object Referenties is het mechanisme achter datastructuren als Linked lists en Trees

Hogeschool HZ Zeeland Onderwerpen Referenties Linked Lists Binary (search) trees Iterators

Hogeschool HZ Zeeland Linked List Demo Applet

Hogeschool HZ Zeeland Linked Lists: in code Opbouw code voor linked list: – Class ‘Link’ – Class ‘LinkedList’

Hogeschool HZ Zeeland De ‘Link’-class (voorbeeld) class Link { public int iData; // data item public double dData; // data item public Link next; // next link in list }

Hogeschool HZ Zeeland Opbouw van de lijst Lijst bestaat dus uit een reeks links Elke link verwijst weer naar de volgende link De laatste link kan nergens naar verwijzen, en bevat daarom dus ‘null’ Hoe ziet dan de LinkedList-class eruit?

Hogeschool HZ Zeeland De ‘LinkList’-class Deze class bevat niets anders dan een referentie naar de eerste Link uit de lijst (en natuurlijk ook nog de benodigde bewerkingen op de elementen) class LinkList { private Link first; // ref to first link on list }

Hogeschool HZ Zeeland Double-ended lists Naast referentie naar eerste link, bevat een double-ended list ook een referentie naar het laatste item. Kan daarom items direct aan het begin en aan het einde invoegen (in O(1)). Kan dit ook bij het verwijderen? Heeft een voordeel bij bepaalde situatie: bijvoorbeeld een Queue.

Hogeschool HZ Zeeland Doubly-linked lists Een link bevat nu niet alleen een referentie naar de volgende link, maar ook naar de vorige link. Voordeel: achterwaarts traversen is mogelijk Nadeel: goed opletten met programmeren…

Hogeschool HZ Zeeland Sorted lists Vergelijkbaar met Ordered Array Het invoegen gebeurt door één voor één door de links te ‘wandelen’ (=traversal) totdat de juiste plaats is gevonden. Heeft deze list dezelfde voordelen als een ordered array?

Hogeschool HZ Zeeland Onderwerpen Referenties Linked Lists Binary (search) trees Iterators

Hogeschool HZ Zeeland Binary Tree Demo Applet

Hogeschool HZ Zeeland Binary Trees Slechts twee richtingen Bewerkingen (Workshop applet): – Insert – Find – Traverse – Delete

Hogeschool HZ Zeeland Tree terminologie Node Edge Path Root Parent Child Leaf Subtree Visiting Traversing Levels

Hogeschool HZ Zeeland Tree beperkingen Door verkeerde invoer (volgorde) degenereert de tree tot een gewone linked list. Oplossing: maak een slimme tree die zichzelf in balans houdt: Voorbeelden: – red-black trees – trees

Hogeschool HZ Zeeland Einde…