Föreläsning 14 Innehåll

Relevanta dokument
Hitta k största bland n element. Föreläsning 13 Innehåll. Histogramproblemet

Diskutera. Hashfunktion

Inlämningsuppgift och handledning

Föreläsning 10 Innehåll

Inlämningsuppgift och handledning. Föreläsning 11 Innehåll. Diskutera. Hashtabeller

Föreläsning 10 Innehåll. Diskutera. Hashtabeller. Hashfunktion. hashfunktion. hashkod (ett heltal)

Föreläsning 11 Innehåll

Interfacen Set och Map, hashtabeller

Föreläsning 9 Innehåll

Föreläsning 10 Innehåll. Prioritetsköer och heapar. ADT Prioritetskö. Interface för Prioritetskö. Exempel på vad du ska kunna

TDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 9 Jonas Lindgren, Institutionen för Datavetenskap, LiU

Föreläsning 10 Innehåll. Diskutera. Inordertraversering av binära sökträd. Binära sökträd Definition

Föreläsning 10 Innehåll

Föreläsning 11 Innehåll. Diskutera. Binära sökträd Definition. Inordertraversering av binära sökträd

ADT Prioritetskö. Föreläsning 13 Innehåll. Prioritetskö vs FIFO-kö. Prioritetskö Exempel på användning. Prioritetsköer och heapar

Sortering. Föreläsning 12 Innehåll. Sortering i Java. Sortering i Java Exempel. Sortering

Föreläsning 12 Innehåll

ADT Prioritetskö. Föreläsning 12 Innehåll. Prioritetskö. Interface för Prioritetskö. Prioritetsköer och heapar

Introduktionsmöte Innehåll

Seminarium 13 Innehåll

Föreläsning 13 Innehåll

13 Prioritetsköer, heapar

Inlämningsuppgiften. Föreläsning 9 Innehåll. Träd. Datastrukturer i kursen

Programmering fortsättningskurs

Mål Förklaring av termer

EDAA01 Programmeringsteknik - fördjupningskurs

Föreläsning 9 Innehåll

Mål Förklaring av termer

Föreläsning 4 Innehåll. Abstrakta datatypen lista. Implementering av listor. Abstrakt datatypen lista. Abstrakt datatyp

Datastrukturer i kursen. Föreläsning 8 Innehåll. Träd rekursiv definition. Träd

Objektorienterad Programmering DAT043. Föreläsning 9 12/2-18 Moa Johansson (delvis baserat på Fredrik Lindblads material)

TDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 3 Jonas Lindgren, Institutionen för Datavetenskap, LiU

Föreläsning 3 Datastrukturer (DAT037)

Föreläsning 4 Innehåll

Tentamen, EDA690 Algoritmer och Datastrukturer, Helsingborg

Abstrakt datatyp. -Algoritmer och Datastrukturer- För utveckling av verksamhet, produkter och livskvalitet.

EDAA30 Programmering i Java - fortsättningskurs

Tentamen, EDAA01 Programmeringsteknik fördjupningskurs

Algoritmer och datastrukturer 2012, fo rela sning 8

Föreläsning 13 Datastrukturer (DAT037)

ADT Kö. Seminarium 4 Köer och Stackar Innehåll. Operationer. ADT Stack. Definition. Definition

Programmering för språkteknologer II, HT2014. Rum

Föreläsning Datastrukturer (DAT037)

Föreläsning 12 Innehåll

Föreläsning 13 Datastrukturer (DAT037)

Datastrukturer. föreläsning 3. Stacks 1

Lösningsförslag till tentamen i EDA690 Algoritmer och Datastrukturer, Helsingborg

Länkade strukturer, parametriserade typer och undantag

Datastrukturer som passar för sökning. Föreläsning 11 Innehåll. Binära sökträd Definition. Inordertraversering av binära sökträd

TENTAMEN: Algoritmer och datastrukturer. Läs detta!

Datastrukturer som passar för sökning. Föreläsning 10 Innehåll. Inordertraversering av binära sökträd. Binära sökträd Definition

Föreläsning 9 Datastrukturer (DAT037)

TDDE10 m.fl. Objektorienterad programmering i Java Föreläsning 5 Erik Nilsson, Institutionen för Datavetenskap, LiU

TENTAMEN: Algoritmer och datastrukturer. Läs detta! Uppgifterna är inte avsiktligt ordnade efter svårighetsgrad.

TDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 3 Jonas Lindgren, Institutionen för Datavetenskap, LiU

Lägg uppgifterna i ordning. Skriv uppgiftsnummer och din anmälningskod överst i högra hörnet på alla papper.

Datastrukturer. föreläsning 6. Maps 1

Föreläsning 3 Datastrukturer (DAT037)

Lägg uppgifterna i ordning. Skriv uppgiftsnummer och din anmälningskod överst i högra hörnet på alla papper.

Lösningsförslag till tentamen i EDAA01 programmeringsteknik fördjupningkurs

Föreläsning 1 Datastrukturer (DAT037)

Föreläsning 1 Innehåll

Datastrukturer och algoritmer. Föreläsning 15 Inför tentamen

Föreläsning 1 Innehåll. EDAA01 Programmeringsteknik - fördjupningskurs. Detta ska du lära dig... Kursens mål. Detta kan du...

Föreläsning Datastrukturer (DAT036)

Algoritmer och datastrukturer

Föreläsning 2 Datastrukturer (DAT037)

Föreläsning 4 Datastrukturer (DAT037)

Försättsblad till skriftlig tentamen vid Linköpings Universitet

Tentamen, Algoritmer och datastrukturer

Länkade strukturer. (del 2)

TDDC30 Programmering i Java, Datastrukturer och Algoritmer Lektion 2. Länkade listor Stackar Köer MyList Iteratorer Lab 2 Exceptions Paket

Kungl. Tekn. Högskolan Förel 1, bild 1 Föreläsning 1: Introduktion ffl Kursinnehåll ffl Javarepetition ffl Referenser ffl Nyckelordet static ffl Klass

Programmering för språkteknologer II, HT2011. Rum

Föreläsning 7. Träd och binära sökträd

Tentamen i Algoritmer & Datastrukturer i Java

TDDC30 Programmering i Java, Datastrukturer och Algoritmer Lektion 2. Laboration 2 Datastrukturer En liten uppgift Frågor

Tentamen, EDAA01 Programmeringsteknik fördjupningskurs

Tentamen Datastrukturer (DAT037)

Föreläsning 10 Datastrukturer (DAT037)

Exempeltenta GruDat 2002/2003

F12 - Collections. ID1004 Objektorienterad programmering Fredrik Kilander

Java Collections Framework. Föreläsning 2 Innehåll. Java Collections Framework interface hierarki. Java Collections Framework interface hierarki

Programmeringsteknik II

Programmering för språkteknologer II, HT2014. Rum

Tentamen Datastrukturer för D2 DAT 035

F5: Debriefing OU2, repetition av listor, träd och hashtabeller. Carl Nettelblad

Föreläsning 11 Innehåll

TENTAMEN: Algoritmer och datastrukturer. Läs detta!

Tentamen Datastrukturer, DAT037 (DAT036)

Föreläsning 11 Innehåll. Sortering. Sortering i Java. Sortering i Java Comparable. Sortering. O(n 2 )-algoritmer: urvalssortering insättningssortering

Datastrukturer. Arrayer. Arrayer. Arrayer. Array av arrayer. Array av arrayer

Vad handlar kursen om? Algoritmer och datastrukturer. Vad handlar kursen om? Vad handlar kursen om?

TDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 8 Erik Nilsson, Institutionen för Datavetenskap, LiU

Föreläsning 2 Innehåll

Föreläsning 8. Mängd, Avbildning, Hashtabell

Lägg uppgifterna i ordning. Skriv uppgiftsnummer och din anmälningskod överst i högra hörnet på alla papper.

Programmering för Språkteknologer II. Innehåll. Associativa datastrukturer. Associativa datastrukturer. Binär sökning.

Tentamen'('Datastrukturer,'algoritmer'och'programkonstruktion.'

Datastrukturer. Föreläsning 5. Maps 1

Transkript:

Föreläsning 14 Innehåll Abstrakta datatyper, datastrukturer Att jämföra objekt övriga moment i kursen Om tentamen Skriftlig tentamen både programmeringsuppgifter och teoriuppgifter Hitta fel i fingerade lösningar Datavetenskap (LTH) Föreläsning 14 HT 2018 1 / 8

Abstrakt datatyp (ADT) En abstrakt modell med de operationer man kan utföra på den: lista, stack, kö (FIFO) mängd (eng. set) map prioritetskö Datastruktur En samling variabler (ofta av samma typ) som hör ihop på något sätt: vektor enkellänkad lista, dubbellänkad lista balanserat binärt sökträd hashtabell heap Datavetenskap (LTH) Föreläsning 14 HT 2018 2 / 8

Vilken nivå ska kunskapen ha (detaljer helhet)? Exempel: map Du ska veta: att den abstrakta datatypen map beskriver en samling nyckel-värdepar där nycklarna är unika. Viktiga operationer är insättning, sökning efter en nyckels värde, borttagning. att map kan implementeras effektivt med hjälp av ett balanserat binärt sökträd eller en hashtabell. hur man implementerar en hashtabell och ett binärt sökträd. Du ska med hjälp av dokumentation kunna använda: Javas interface Map och klasserna TreeMap och HashMap. Du ska kunna lista ut saker som: Vilken av klasserna som passar bäst i ett visst sammanhang, tidskomplexiteten för metoden get i HashMap (dvs. sökning i en hashtabell),... Datavetenskap (LTH) Föreläsning 14 HT 2018 3 / 8

Skugga equals Inuti Javas samlingsklasser måste ibland element jämföras. Det ställer krav på den klass som beskriver de element som ska sättas in i samlingen. Exempel: Antag att vi skrivit en klass Book där två Book-objekt med samma isbn-nummer ska betraktas som lika. public class Book { private String isbn; private String title; Om vi sätter in Book-objekt i en lista av typen ArrayList<Book> eller LinkedList<Book> måste equals skuggas i klassen Book. Annars fungerar inte metoderna contains, remove,... som avsett. Datavetenskap (LTH) Föreläsning 14 HT 2018 4 / 8

Implementera Comparable eller Comparator I vissa sammanhang jämförs om ett element är mindre än, lika med, större än ett annat. Detta görs i klasser med binära sökträd (TreeSet<Book>, TreeMap<Book,...>) eller heapar (PriorityQueueu<Book>) samt vid sortering. Låt klassen Book implementera interfacet Comparable. public class Book implements Comparable<Book> { private String isbn; private String title; public int compareto(book o) { return isbn.compareto(isbn); } eller skicka med ett komparator-objekt i form av ett lambdauttryck (eller ett objekt av en egen klass som implementerar interfacet Comparator). Datavetenskap (LTH) Föreläsning 14 HT 2018 5 / 8

Skugga hashcode och equals I Javas klasser med hashtabeller används metoden hashcode (för att hitta rätt plats i vektorn) samt equals (för att söka efter en nyckel bland element med lika hashkod). Om man sätter in Book-objekt i en mängd av typen HashSet<Book> eller har nycklar av typen Book i en HashMap<Book,...>) så måste både hashcode och equals skuggas i klassen Book. public class Book { private String isbn; private String title; public int hashcode() {...} } public boolean equals(object other) {...} Datavetenskap (LTH) Föreläsning 14 HT 2018 6 / 8

Övrigt Förutom det som repeteras på föregående sidor har vi bland annat sysslat med Interface Exceptions Generiska klasser och metoder Länkade strukturer (enkellänkade listor, binära träd) Rekursion Tidskomplexitet Grafiska användargränssnitt (examineras inte på den skriftliga tentan). Sortering Datavetenskap (LTH) Föreläsning 14 HT 2018 7 / 8

Tentamensuppgifter med planterade fel Du har fått papper med fått några tentamensuppgifter (från 2017 08 149. Till varje uppgift finns en fingerad lösning med några typiska fel. Markera felen och rätta till dem. Datavetenskap (LTH) Föreläsning 14 HT 2018 8 / 8