För utveckling av verksamhet, produkter och livskvalitet. Algoritmer och datastructurer - En annan sort tänkande, rekursiva metoder -Datastrukturen träd.

Slides:



Advertisements
Liknande presentationer
Funktioner och programorganisation
Advertisements

2D1311 Programmeringsteknik med PBL
Algoritmer och data strukturer -Länkade listor
Fortsättningskurs i Programmering lektion 6
För utveckling av verksamhet, produkter och livskvalitet. Rekursiva algoritmer, en annan sort tänkande -Hur -När -Bra/Dåligt (kap 7)
Datastrukturer och algoritmer Föreläsning 11. Datastrukturer och algoritmer VT08 Innehåll  Mängd  Lexikon  Heap  Kapitel , , 14.4.
För utveckling av verksamhet, produkter och livskvalitet. Algoritmer och datastructurer - Lite mer rekursivitet -Sorterrings algoritmer -- Kapitel 8 Algoritmer.
Binära Sökträd, kapitel 19
Arv.
Polymorfism.
Programmeringsteknik för K och Media
Föreläsning 10 Länkade lista Stack och Kö Att arbeta med listor
© Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 Föreläsning 7 Träd.
Träd och tillämpningar Data Structures & Problem Solving using Java -- Kapitel 19, 12.
1 Föreläsning 6 Klass Object, instans av klass public/private Klassvariabler och klassmetoder.
Föreläsning 4, Kapitel 4 Gruppera objekt Kursbok: “Objects First with Java - A Practical Introduction using BlueJ”, David J. Barnes & Michael Kölling.
OOP F4:1 Marie Olsson OOP Objekt-orienterad programmering Föreläsning 4 Metoder klass-metoder instans-metoder.
Programmering i C# 3. Klasser.
PROCESSPROGRAMMERING
Föreläsning 4 Kö Implementerad med array Implementerad med länkad lista Djup kontra bredd Bredden först mha kö.
int res2=Math.max(tal1,tal2);
Föreläsning 2 Kort Översikt Över Javaspråket. Källkodsformat Unicode används åäöμψζ tillåtna Inte alla miljöer klarar av det Källkod Bytekod Java VM för.
Vektorer (klassen Vector) Sortering
Mer om arv - Polymorfism Kursbok: “Objects First with Java - A Practical Introduction using BlueJ”, David J. Barnes & Michael Kölling Fredric Ragnar
Algoritmer och datastrukturer
OOP F3:1 Marie Olsson OOP Objekt-orienterad programmering Föreläsning 3 Iteration Många variabler av samma sort – Arrayer.
Rekursiva algoritmer Hur När Bra/Dåligt (kap 7).
DD1311 P ROGRAMMERINGSTEKNIK MED PBL Föreläsning 9 Skolan för Datavetenskap och kommunikation.
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 7 ( ) INNEHÅLL: -Metoder -Lokala variabler -Mera om klasser: -Nyckelorden.
För utveckling av verksamhet, produkter och livskvalitet. -Algoritmer och Datastrukturer- -Algoritm analys och sökning algoritmer- Kap 5 -Algoritmer och.
Riktade listor i C och Java Lösning till gruppövning 1.
Namnrum, räckvidd och rekursion Linda Mannila
Logikprogrammering 21/10 Binära träd
Föreläsning 8 Programmeringsteknik och Matlab DD1312 Klassmetoder Egen modul, Self Metoderna: __str__, __lt__,… Meddelande Arv, Överlagring av metoder,
Datastrukturer och algoritmer
F4 - Funktioner & parametrar 1 Programmeringsteknik, 4p vt-00 Modularisering ”svarta lådor” Väl definierade arbetsuppgifter Enklare validering Enklare.
För utveckling av verksamhet, produkter och livskvalitet. Stack och Kö - Implementering - Tilllämpningar.
Datastrukturer och algoritmer
1 ITK:P2 F6 Sortering av generiska containerklasser DSV Peter Mozelius.
Stack och Kö -Implementering -Tilllämpningar -- Kapitel 16, 11.
1. Ett problem/uppgift.
För utveckling av verksamhet, produkter och livskvalitet. Algoritmer och datastructurer - Sökträd, naiva och balancerade lösningar -HashTable -- Kapitel.
Rekursion. En metoddefinition som innehåller ett anrop av sig själv kallas rekursiv.
1 Föreläsning 8 Mer om klasser och objektorientering.
Träd -Allmänt om träd -Binärt träd -Filkomprimering med Huffman träd
Köer -- Kapitel 16. Principen med en kö Köer är FIFO datastrukturer  First In – First Out  enqueue() Lägg till data i kön (först)  dequeue() Hämta.
7. Delegerare och notifierare
Karl-Henrik Hagdahl, 11 november Repetition Logikprogrammering: måndag 11 november 2002.
För utveckling av verksamhet, produkter och livskvalitet. Algoritmer och datastrukturer - En annan sort tänkande, rekursiva metoder -Datastrukturen träd,
För utveckling av verksamhet, produkter och livskvalitet. Algoritmer och datastrukturer Sorterings algoritmer.
Logikprogrammering 23/10 Binära träd In- och uthantering David Hjelm.
ITM1 Kapitel 8 Datastrukturer Grundläggande datavetenskap, 4p Utgående från boken Computer Science av: J. Glenn Brookshear.
TILLÄMPAD DATALOGI (TILDA) Övningsgrupp 2 Marcus Hjelm
OOP F5:1 Stefan Möller OOP Objekt-orienterad programmering Föreläsning 5 Klasser och objekt Skapa objekt - new Referenser Konstruktorer Inkapsling.
© Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 Datastrukturer och algoritmer Föreläsning 13 Sortering.
Övning 3. Repetition Metoder class RepetitionMetoder { public static void main(String [] args) double längd = 2.0; double bredd = 1.0; double area =
TILLÄMPAD DATALOGI (TILDA) Övning 2
TILLÄMPAD DATALOGI (TILDA) Övning 2
För utveckling av verksamhet, produkter och livskvalitet. Algoritmer och Datastrukturer -- Kap 21,14 Prioritets Köer (Priority Queues ), Graph.
© Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 Datastrukturer och algoritmer Föreläsning 14.
Föreläsning 7 Repetition Sammansatta datatyper –vektor (hakvektor, array) –matris.
1 Övning6 Läsning från fil till java objekt Sökning Sortering.
Malmö högskola Rolf Axelsson 2003/2004 DA7231, 4 poäng Referensvariabel Klass och konstruktorer Klass med set- och get-metoder Klass och fält Fler metoder.
Algoritmer och loopar Algoritmer, beräkningsbarhet
För utveckling av verksamhet, produkter och livskvalitet. Algoritmer och datastrukturer Sökning, Symbol tabeller Binära sökträd.
Algoritmer och datastrukturer Föreläsning 8 Tidskomplexitet (Weiss kap
Föreläsning 11: Rekursion
Föreläsning 8: Exempel och problemlösning
Föreläsning 12: Exempel och problemlösning
Repetitionsföreläsning 1: Lite rekursion & problemlösning
Presentationens avskrift:

För utveckling av verksamhet, produkter och livskvalitet. Algoritmer och datastructurer - En annan sort tänkande, rekursiva metoder -Datastrukturen träd Binärt träd -Filkomprimering med Huffmanträd -- Kapitel 18, 12 Algoritmer och datastructurer - En annan sort tänkande, rekursiva metoder -Datastrukturen träd Binärt träd -Filkomprimering med Huffmanträd -- Kapitel 18, 12

För utveckling av verksamhet, produkter och livskvalitet. Rekursion ?  En rekursiv metod är en metod som anropar sig själv.  Liknar loopar / iterationer  Mycket kraftfull men något förvirrande...  Rekursion är ett sätt att lösa ett problem genom att dela problemmet i flera identiska men mindre subproblem, dvs. metoden anropar sig själv med ” ett mindre argument”. Summan av n

För utveckling av verksamhet, produkter och livskvalitet. Exempel public static int sumOf(int n) { if(n==1) return 1; else return sumOf(n-1) +n; } !! basfall Se till att den rekursiva anropet alltid leder till basfallet

För utveckling av verksamhet, produkter och livskvalitet. Vad är ett träd datastruktur? En abstaction som beskriver...ja..just det...

För utveckling av verksamhet, produkter och livskvalitet. Datoranpassad träd...

För utveckling av verksamhet, produkter och livskvalitet. Var finns träd? Fil / Katalog strukturer! Sökning och sortering Filkomprimenring Kompilatorer

För utveckling av verksamhet, produkter och livskvalitet. Ny terminologi! Nod Kant Rot Löv Förälder Barn Djup Höjd

För utveckling av verksamhet, produkter och livskvalitet. Lite mer komplicerat träd Rot Löv Djup Höjd Storlek A DCB K JI HGF E

För utveckling av verksamhet, produkter och livskvalitet. Funktioner på träd Typiska funktioner (oftast rekursiva!) Antalet noder i ett träd Listning (traversering) av trädstrukturen

För utveckling av verksamhet, produkter och livskvalitet. Speciella träd Binära träd Maximalt två barn / nod Vänster / höger barn a b def c

För utveckling av verksamhet, produkter och livskvalitet. Implementation- noden class BinaryNode{ private Object element; private BinaryNode left; private BinaryNode right; public BinaryNode( Object theElement, BinaryNode lt, BinaryNode rt){ element=theElement; left=lt; right=rt; } public BinaryNode(){ this( null,null,null); } } element left right

För utveckling av verksamhet, produkter och livskvalitet. Implementation - metoder -public Object getElement() -public BinaryNode getLeft() -public void printPreorder() -public void printPostOrder() -public void printInOrder(); -public static int size(BinaryNode n) -public static int height( BinaryNode n)

För utveckling av verksamhet, produkter och livskvalitet. Metoden –size() public static int size(BinaryNode n) { if (n==null) return 0; else return 1+size(n.left)+size(n.right); }

För utveckling av verksamhet, produkter och livskvalitet. Metoden printPreorder() public void printPreorder(){ System.out.println(element); if(left!=null) left.printPreorder(); if(rigth!=null) right.printPreorder(); } a cb fe abe f c

För utveckling av verksamhet, produkter och livskvalitet. Metoden printPostOrder() public void printPostOrder(){ if(left!=null) left.printPostOrder(); if(rigth!=null) right.printPostOrder(); System.out.println(element); } a cb fe efb c a

För utveckling av verksamhet, produkter och livskvalitet. BinaryTree klassen class BinaryTree{ } private BinaryNod root; public BinaryTree( Object item){ root=new BinaryNode(item,null,null); } public BinaryTree(){ root=null; }

För utveckling av verksamhet, produkter och livskvalitet. BinaryTree-metoden merge() public void merge( Object item, BinaryTree t1, BinaryTree t2) { // Testa om inte t1 och t2 är samma träd if( t1.root== t2.root && t1.root!=null) // rapportera fel root = new BinaryNode( item, t1.root,t2.root); if(this!=t1) t1.root=null; if(this!=t2) t2.root=null; }

För utveckling av verksamhet, produkter och livskvalitet. Tillämpning-Uttrycksträd * +- ab a b public void printPostOrder(){ if(left!=null) left.printPostOrder(); if(rigth!=null) right.printPostOrder(); System.out.println(element); }

För utveckling av verksamhet, produkter och livskvalitet. Tillämpning-datakomprimering a d bc

För utveckling av verksamhet, produkter och livskvalitet. Datakomprimering - Huffman Hej, mitt namn är Nicolina och jag försöker få mina studenter att se tjusningen i träd och komprimeringsalgoritmer!

För utveckling av verksamhet, produkter och livskvalitet Datakomprimering - Huffman

För utveckling av verksamhet, produkter och livskvalitet. Datakomprimering - Huffman ggr 31 ggr 5 ggr 19 ggr 14 ggr I II III IV V III IIIV IV I II III IV V = = = = =