Datastrukturer och algoritmer
|
|
- Maja Axelsson
- för 7 år sedan
- Visningar:
Transkript
1 Datastrukturer och algoritmer Föreläsning 12 2 Innehåll Handledning, labbar, samarbete, etc Sökträd Sökning Delar av kapitel i boken + OHbilderna 3 Handledning/labutlämning Ingen labhandledning via mail Alla handlednings/labutlämningsresurser finns i schemat Ingen handledning/labutlämning sker utanför dessa tider Gruppövning 5 (den 22/5) ställs in OU4 kommer att vara rättad och lämnas ut tis 29/5- ons 3/5. Se schemat för utlämningstider. C/DV-studenterna skriver tenta den 29e men alla IDstudenter kan passa på att hämta ut sina labbar då. OU4 kompletteras senast torsdag 7/6 4 Samarbete, plagiat och vilseledande vid prov Samarbete, diskussion kring te problemställningen, mindre sntaproblem men inte gemensamt lösande av uppgiften i sin helhet. Plagiat, oredovisad imitation eller kopiering av ett verk som framställs som egen skapelse; litterär, vetenskaplig eller konstnärlig stöld. Vilseledande vid prov, fusklappar, inlämnande av kod/rapport som någon annan (helt eller delvis) skrivit 5 Hederskode The Honour Code is an agreement from the students, individuall and collectivel: that the will not give or receive aid in eaminations; that the will not give or receive unpermitted aid in class work, in the preparation of reports, or in an other work that is to be used b the instructor as the basis of grading; that the will acknowledge an (permitted) help the have received and resources the have used for doing such work; that the will make sure the understand the entiret of submitted works, including all parts the received help for; that the will do their share and take an active part in seeing to it that others as well as themselves uphold the spirit and letter of the Honour Code. While the facult alone has the right and obligation to set academic requirements, the students and facult will work together to establish optimal conditions for honourable academic work. 6 Binärt sökträd -repetition Ett binärt träd som är sorterat med avseende på en sorteringsordning R av etikettpen så att I varje nod N gäller att alla etiketter i vänster delträd går före N som i sin tur går före alla etiketter i höger delträd. Alla noder är definierade.
2 Binära sökträd AVL-träd 7 Om trädet är komplett så vet vi att både medel- och värstafallskompleiteten är O(log n). Men Det tar tid och kraft att se till att trädet är komplett. Ibland kan man tvingas bgga om hela trädet. Det räcker att se till att balansen är god 8 Kallas även höjdbalanserat binärt sökträd. Adelson Velskii and Landis, 1962 Noderna är fördelade så att trädet är väl balanserat. För varje enskild nod gäller: Höjden för vänster och höger delträd skiljer sig åt med högst 1. AVL-träd Eempel på ett AVL-träd 9 Vi får värstafallskompleitet för sökning O(log n) utan att försämra kompleiteten för insättning och borttagning (som alltså också är O(log n)). Algoritmerna för insättning och borttagning blir lite bökigare att konstruera. Måste lagra information om höjden på delträden i noderna AVL-träd Insättning i ett AVL-träd 11 Minimala höjdbalanserade träd Bild från sidan 319 i Janlert L-E., Wiberg T., Datatper och algoritmer, Studentlitteratur, 2 12 Det na elementet gör att trädhöjden förändras och att trädet måste höjdbalanseras. Man kan hålla reda på delträdens höjd på olika sätt: Lagra höjden eplicit i varje nod Lagra en balansfaktor för noden (-1,, +1 men kan temporärt bli +/-2) o Balansen = h(vänster barn) h(höger barn) Förändringen brukar beskrivas som en höger- eller vänsterrotation av ett delträd. Det räcker med en rotation för att få trädet i balans igen.
3 Insättningsalgoritm Eempel: Insättning i ett AVL-träd 13 Börja med att sätta in elementet som vanligt i ett binärt sökträd. Starta från den na noden och leta uppåt tills man hittar en nod så att grandparent z är obalanserat. Markera :s förälder. Gör en rekonstruering av trädet så här: Döp om,, z till a, b och c baserat på inorder-ordning. Låt,, och vara delträden till, och z i inorder-ordning. (Inget av delträden får ha, eller z som rot.) z bts ut mot b, dess barn är nu a och c. och är barn till a och och är barn till c z/c /a /b Eempel: Insättning i ett AVLträd Fra olika rotationer (1) 15 b a c 44 3 T T1 T2 T Om b = kallas det en enkel rotation Rotera upp över z Fra olika rotationer (2) Fra olika rotationer (3) 17 Om b = kallas det en enkel rotation Rotera upp över z 18 Om b = kallas det en dubbel rotation Rotera upp över och sedan över z
4 Fra olika rotationer (4) 19 Om b = kallas det en dubbel rotation Rotera upp över och sedan över z 2 Anta att vi har balans... och sen stoppar in något som sabbar den 21 Gör en enkel rotation. 22 Gör en enkel rotation. 23 Gör en enkel rotation. 24 Gör en enkel rotation. Klart!
5 25 I ett steg: 26 I ett steg: a/ Eempel från boken b/ c/z Döp om,, z till a, b och c baserat på inorder-ordning. Låt T, T1, T2 och T3 vara delträden till, och z i inorder-ordning. (Inget av delträden får ha, eller z som rot.) z bts ut mot b, dess barn är nu a och c. T och T1 är barn till a och T2 och T3 är barn till c. 28 Ettntteempel dubbelrotation z 29 z... den här gången stoppar vi in något här 3 z och tittar på strukturen i Y
6 31 z Vi får lov att göra en dubbel rotation 32 z Klart! 33 z I ett steg z I ett steg... Borttagning ur ett AVL-träd Flervägs sökträd 35 Borttagningen börjar som en vanlig borttagning ur ett binärt sökträd. Men även borttagning ur ett AVL-träd kan störa balansen. Vi gör en rotation som tidigare för att återställa den (behövs bara enkla rotationer). När vi återställer balansen på ett ställe kan det uppstå obalans på ett annat Måste upprepa balanseringen (eller kontroll av balansen) till dess vi nått roten. 36 Ett m-vägs sökträd (m-wa search tree, m-ar search tree) är en generalisering av ett binärt sökträd. Trädet är ett ordnat träd där varje nod har högst m delträd. Etiketterna är sekvenser av upp till m-1 värden i stigande sorteringsordning som fungerar som delningspunkter vid sökning. Oftast är etiketterna ncklar och värdet till en viss nckel finns i lövet.
7 Flervägs sökträd Eempel 37 Till en nod med k+1 delträd, t, t 1,, t k hör en sekvens med värden v 1, v 2,, v k. Sorteringsvillkoret för trädet är att: alla värden i t går före v 1 (i sorteringsordningen) alla värden i t j ligger mellan v j och v j+1 för 1<j<k alla värden i t k går efter v k Operationerna blir liknande de för binärt sökträd. Plattare träd. Höjden = log m n Mer jobb i noderna 38 Bild från sidan 323 i Janlert L-E., Wiberg T., Datatper och algoritmer, Studentlitteratur, 2 B-träd B-träd 39 Ett B-träd av ordning m är en tp av balanserat m-vägs sökträd som uppfller följande: Roten är antingen ett löv eller har minst två barn Alla noder utom roten och löven har mellan m/2 och m barn Alla löv är på samma djup 4 Insättning av na element görs alltid på den djupaste nivån, i rätt löv för att bevara sorteringsordningen. En insättning kan leda till att noden blir för stor (dvs > m). Då måste noden delas upp. Borttagning kan leda till att man måste justera värderna och slå ihop noder eller omfördela värden mellan dem. B-träd av ordning 3 kallas också 2-3 träd Eempel på B-träd: 2-4 träd 41 Varje nod har 1, 2 eller 3 ncklar och varje icke-löv har 2-4 barn. Regel för insättning: Man letar sig fram till rätt löv på liknande sätt som i ett vanligt sökträd. Den na nckeln sätts in där. Om det blir för många ncklar i det lövet splittras det. 42 Denna bild och resterande bilder om 2-4 träd kommer från 529 och framåt i Goodrich M. T., Tamassia R., Datastructures and Algorithms in Java, John Wile & Sons, 1998 och/eller tillhörande OH-material.
8 Insert i 2-4 träd Insert i 2-4 träd, forts 43 Stoppa in elementen 4, 6, 12 Att stoppa in elementet 15 orsakar en split. Ersätt den temporära 5-noden med en 3-nod och en 2-nod och fltta upp ett element till föräldern 44 Sätt nu in först 3 och sen 5(som orsakar en n split) En split kan sprida sig uppåt träd, borttagning 46 Man letar sig fram till rätt löv på liknande sätt som i ett vanligt sökträd. Enkla fallet: Det finns flera ncklar i noden, ta bort den som ska bort. Halvsvåra fallet: Sskonen har etra element som vi kan sno. Svåra fallet: Vi får tomt och sskonet har bara ett element. Då måste vi göra en fuse - operation. Enkla fallet, det finns flera element i noden Halvsvåra fallet: Sskonen har etra element som vi kan sno Kallas transfer
9 49 Svåra fallet: Måste göra en fuse - operation. 5 Svåra fallet: Måste göra en fuse - operation som vandrar uppåt i trädet. Linjär sökning Binär sökning 51 Starta från början och sök tills elementet hittat eller sekvensen slut. Kompleitet Elementet finns: I medel gå igenom halva listan, O(n) Elementet saknas: I medel gå igenom hela listan, O(n) Om listan är sorterad: Elementet saknas: Räcker i medel att leta genom halva listan n/2, O(n) 52 Om sekvensen har inde (te i en arra eller numrerad lista) kan man söka binärt. Successiv halvering av sökintervallet. Vi får värsta-falls och medelkompleitet O(log n). Jämför med elementet närmast mitten i intervallet. Om likhet klart! Om det sökta värdet kommer före i sorteringsordningen fortsätt sökningen rekursivt i det vänstra delintervallet. Om det kommer efter i sorteringsordningen fortsätt sökningen rekursivt i det högra delintervallet. Eempel: Strängsökning Sök efter elementet 13. Linjär sökning: 8 jämförelser innan träff. Binär sökning: 2 jämförelser innan träff. Sök efter elementet 1 Linjär sökning: 8 jämförelser innan man ger upp. Binär sökning: 4 jämförelser innan man ger upp. Specialfall av sökning. Man söker inte ett enstaka element utan en sekvens av element. Elementet ofta tecken. Formellt: Vi har ett mönster P med längd m och vi söker i en sekven S av längd n där m<<n
10 Första försök till algoritm: Eempel 55 Börja jämföra mönstret med sekvensen med start i position ett. Jämför mönstret från vänster till höger tills man misslckas. Fltta då fram en position i sekvensen och försök igen. Värsta fallet: Varje element i S avläses m gånger, dvs O(n*m) I praktiken bättre 56 Boer-Moores algoritm 57 Två idéer: Gör matchningen baklänges, med start i mönstrets sista element. Utnttja kunskap om mönstrets uppbggnad och informationen om värdet på den första felmatchande elementet i S för att fltta fram mönstret så långt som möjligt varje gång. o Om det finns upprepningar av element i mönstret så får man bara fltta fram till den högraste förekomsten. o Förskjutningstabell talar om hur långt man får fltta.
Föreläsning 2. AVL-träd, Multi-Way -sökträd, B-träd TDDD71: DALG. Innehåll. Innehåll. 1 Binära sökträd
Föreläsning AVL-träd, Multi-Wa -sökträd, B-träd DDD7: DALG Utskriftsversion av föreläsning i Datastrukturer och algoritmer november 5 omm Färnqvist, IDA, Linköpings universitet. Innehåll Innehåll Binära
Läs merFöreläsning 6. Sökträd: AVL-träd, Multi-Way -sökträd, B-träd TDDC70/91: DALG. Innehåll. Innehåll. 1 AVL-träd
Föreläsning 6 Sökträd: AVL-träd, Multi-Wa -sökträd, B-träd DDC7/9: DALG Utskriftsversion av föreläsning i Datastrukturer och algoritmer september omm Färnqvist, IDA, Linköpings universitet 6. Innehåll
Läs merInnehåll. Föreläsning 12. Binärt sökträd. Binära sökträd. Flervägs sökträd. Balanserade binära sökträd. Sökträd Sökning. Sökning och Sökträd
Innehåll Föreläsning 12 Sökträd Sökning Sökning och Sökträd 383 384 Binärt sökträd Används för sökning i linjära samlingar av dataobjekt, specifikt för att konstruera tabeller och lexikon. Organisation:
Läs merFöreläsning 5 TDDC91,TDDE22,725G97: DALG. Föreläsning i Datastrukturer och algoritmer 18 september 2018
Föreläsning 5 TDDC91,TDDE22,725G97: DALG Föreläsning i Datastrukturer och algoritmer 18 september 2018 Institutionen för datavetenskap Linköpings universitet 5.1 Introduktion find,insert och remove i ett
Läs merFöreläsning 9 Datastrukturer (DAT037)
Föreläsning Datastrukturer (DAT07) Fredrik Lindblad 27 november 207 Slides skapade av Nils Anders Danielsson har använts som utgångspunkt Se http://wwwcsechalmersse/edu/year/20/course/dat07 Innehåll 2
Läs merSjälvbalanserande träd AVL-träd. Koffman & Wolfgang kapitel 9, avsnitt 1 2
Självbalanserande träd AVL-träd Koffman & Wolfgang kapitel 9, avsnitt 1 2 1 Balanserade träd Nodbalanserat träd: skillnaden i antalet noder mellan vänster och höger delträd är högst 1 Höjdbalanserat träd:
Läs merDatastrukturer. föreläsning 10. Maps 1
Datastrukturer föreläsning 10 Maps 1 AVL-träd 1 2 5 2 0 4 1 8 3 2 1 11 1 7 Lecture 6 2 Insättning i AVL-träd Sätt först in det nya elementet på samma sätt som i ett vanligt BST! Det nya trädet kan bli
Läs merBinära sökträd. Seminarium 9 Binära sökträd Innehåll. Traversering av binära sökträd. Binära sökträd Definition. Exempel på vad du ska kunna
Seminarium inära sökträd Innehåll inära sökträd inära sökträd Definition Implementering lgoritmer Sökning Insättning orttagning Effektivitet alanserade binära sökträd Eempel på vad du ska kunna Förklara
Läs merSjälvbalanserande AVL-träd Weiss, avsnitt 4.4
Självbalanserande AVL-träd Weiss, avsnitt 4.4 Peter Ljunglöf DAT036, Datastrukturer 30 nov 2012 1 Balanserade träd Nodbalanserat träd: skillnaden i antalet noder mellan vänster och höger delträd är högst
Läs merDatastrukturer. föreläsning 10. Maps 1
Datastrukturer föreläsning 10 Maps 1 Minsta uppspännande träd Maps 2 Minsta uppspännande träd Uppspännande träd till graf fritt delträd innehåller alla noderna Minsta uppspännande träd (MST) är det uppspännande
Läs merEtt generellt träd är. Antingen det tomma trädet, eller en rekursiv struktur: rot /. \ /... \ t1... tn
Träd allmänt Träd allmänt Ett generellt träd är Antingen det tomma trädet, eller en rekursiv struktur: rot /. \ /... \ t1... tn där t1,..., tn i sin tur är träd och kallas subträd, vars rotnoder kallas
Läs merTräd Hierarkiska strukturer
Träd Hierarkiska strukturer a 1 a 2 a 3 a 4 a 2 a 5 a 6 a 7 Hierarki: Korta vägar till många Hur korta? Linjär lista: n 2 Träd: Antal element på avståndet m: g m a 1 a 3 a 8 a 12 m = log g n a 9 a 10 Väglängden
Läs merFöreläsning Datastrukturer (DAT036)
Föreläsning Datastrukturer (DAT036) Nils Anders Danielsson 2013-11-27 Idag Balanserade sökträd Splayträd Skipplistor AVL-träd AVL-träd Sökträd Invariant (för varje nod): Vänster och höger delträd har samma
Läs merFöreläsning 9 Innehåll
Föreläsning 9 Innehåll Binära sökträd algoritmer för sökning, insättning och borttagning, implementering effektivitet balanserade binära sökträd, AVL-träd Abstrakta datatyperna mängd (eng. Set) och lexikon
Läs merFöreläsning Datastrukturer (DAT036)
Föreläsning Datastrukturer (DAT036) Nils Anders Danielsson 2013-11-25 Idag Starkt sammanhängande komponenter Duggaresultat Sökträd Starkt sammanhängande komponenter Uppspännande skog Graf, och en möjlig
Läs merDatastrukturer, algoritmer och programkonstruktion (DVA104, HT 2014) Föreläsning 5
Datastrukturer, algoritmer och programkonstruktion (DVA104, HT 2014) Föreläsning 5? FORTSÄTTNING TRÄD RECAP (förra föreläsningen) RECAP (förra föreläsningen) Träd är icke-linjära datastrukturer som ofta
Läs merProgramkonstruktion och. Datastrukturer
Programkonstruktion och Datastrukturer Repetitionskurs, sommaren 2011 Datastrukturer (Listor, Träd, Sökträd och AVL-träd) Elias Castegren elias.castegren.7381@student.uu.se Datastrukturer Vad är en datastruktur?
Läs merÄnnu mera träd: 2-3-träd, B-träd, rödsvarta träd, träd Weiss, avsnitt 4.7, 11.5, 12.2, etc.
Ännu mera träd: 2-3-träd, B-träd, rödsvarta träd, 2-3-4-träd Weiss, avsnitt 4.7, 11.5, 12.2, etc. Peter Ljunglöf DAT036, Datastrukturer 30 nov 2012 1 2-3-träd [inte i kursboken] Ett 2-3-träd har två sorters
Läs merUpplägg. Binära träd. Träd. Binära träd. Binära träd. Antal löv på ett träd. Binära träd (9) Binära sökträd (10.1)
Binära träd Algoritmer och Datastrukturer Markus Saers markus.saers@lingfil.uu.se Upplägg Binära träd (9) Binära sökträd (0.) Träd Många botaniska termer Träd, rot, löv, gren, Trädets rot kan ha ett antal
Läs merFöreläsning 10 Innehåll. Diskutera. Inordertraversering av binära sökträd. Binära sökträd Definition
Föreläsning Innehåll Diskutera Binära sökträd algoritmer för sökning, insättning och borttagning implementering effektivitet balanserade binära sökträd, AVL-träd Jämföra objekt interfacet Comparable Interfacet
Läs merFöreläsning 10 Innehåll
Föreläsning 10 Innehåll Binära sökträd algoritmer för sökning, insättning och borttagning implementering effektivitet balanserade binära sökträd, AVL-träd Jämföra objekt interfacet Comparable Interfacet
Läs merLinjär sökning. Föreläsning 12. Binär sökning. Exempel: Binära sökträd. Binärt sökträd
Föreläsning 2 Sökning, Sökträd och Sortering Linjär sökning Starta från början och sök tills elementet hittat eller sekvensen slut. Komplexitet Elementet finns: I medel gå igenom halva listan, O(n) Elementet
Läs merDatastrukturer. föreläsning 9. Maps 1
Datastrukturer föreläsning 9 Maps 1 Minsta uppspännande träd Maps 2 Minsta uppspännande träd Uppspännande träd till graf fritt delträd innehåller alla noderna Minsta uppspännande träd (MST) är det uppspännande
Läs merFöreläsning 11 Innehåll. Diskutera. Binära sökträd Definition. Inordertraversering av binära sökträd
Föreläsning Innehåll Diskutera Binära sökträd algoritmer för sökning, insättning och borttagning implementering effektivitet balanserade binära sökträd, AVL-träd Jämföra objekt interfacet Comparable Interfacet
Läs merDatastrukturer 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 Innehåll inära sökträd algoritmer för sökning, insättning och borttagning implementering effektivitet alanserade binära sökträd VL-träd Datastrukturer som passar för sökning ntag att vi i ett
Läs merLösningar Datastrukturer TDA
Lösningar Datastrukturer TDA416 2016 12 21 roblem 1. roblem 2. a) Falskt. Urvalssortering gör alltid samma mängd av jobb. b) Sant. Genom att ha en referens till sista och första elementet, kan man nå både
Läs merFöreläsning 4 Datastrukturer (DAT037)
Föreläsning 4 Datastrukturer (DAT07) Fredrik Lindblad 1 november 2017 1 Slides skapade av Nils Anders Danielsson har använts som utgångspunkt Se http://wwwcsechalmersse/edu/year/2015/course/dat07 1 Innehåll
Läs merInformationsteknologi Tom Smedsaas 19 augusti 2016
Informationsteknologi Tom Smedsaas 19 augusti 016 VL-träd Definition Ett VL-träd är ett binärt sökträd där det för varje nod gäller att skillnaden i höjd mellan nodens vänster och höger subträd är högst
Läs merDatastrukturer 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
Föreläsning Innehåll inära sökträd algoritmer för sökning, insättning och borttagning implementering effektivitet balanserade binära sökträd, VL-träd Jämföra objekt interfacet omparable Interfacet omparator
Läs merSökning. Översikt. Binärt sökträd. Linjär sökning. Binär sökning. Sorterad array. Linjär sökning. Binär sökning Hashtabeller
Översikt Linjär sökning Sökning Binär sökning Hashtabeller Programmering tillämpningar och datastrukturer 2 Linjär sökning Binärt sökträd Undersök ett element i taget tills du hittar det sökta Komplexitet
Läs merSeminarium 13 Innehåll
Seminarium 13 Innehåll Prioritetsköer och heapar Prioritetsköer ADTn Klassen PriorityQueue i java.util Implementering med lista Heapar ADTn För implementering av prioritetskö För sortering Efter seminariet
Läs merTrädstrukturer och grafer
Översikt Trädstrukturer och grafer Trädstrukturer Grundbegrepp Binära träd Sökning i träd Grafer Sökning i grafer Programmering tillämpningar och datastrukturer Varför olika datastrukturer? Olika datastrukturer
Läs merFöreläsning 10 Innehåll. Prioritetsköer och heapar. ADT Prioritetskö. Interface för Prioritetskö. Exempel på vad du ska kunna
Föreläsning Innehåll Prioritetsköer och heapar Prioritetsköer och heapar ADT prioritetskö Klassen PriorityQueue i java.util Implementering med lista ar Implementering av prioritetskö med heap Sortering
Läs merTDDI16 Datastrukturer och algoritmer. Prioritetsköer, heapar, Union/Find
TDDI16 Datastrukturer och algoritmer Prioritetsköer, heapar, Union/Find Prioritetsköer En vanligt förekommande situation: Väntelista (jobbhantering på skrivare, simulering av händelser) Om en resurs blir
Läs merADT Prioritetskö. Föreläsning 13 Innehåll. Prioritetskö vs FIFO-kö. Prioritetskö Exempel på användning. Prioritetsköer och heapar
Föreläsning 1 Innehåll ADT Prioritetskö Prioritetsköer och heapar Prioritetsköer och heapar ADT prioritetskö Klassen PriorityQueue i java.util ar Implementering av prioritetskö med heap Sortering med hjälp
Läs merADT Prioritetskö. Föreläsning 12 Innehåll. Prioritetskö. Interface för Prioritetskö. Prioritetsköer och heapar
Föreläsning 1 Innehåll Prioritetsköer och heapar Prioritetsköer och heapar ADT prioritetskö Klassen PriorityQueue i java.util Heapar Implementering av prioritetskö med heap Sortering med hjälp av heap
Läs merDatastrukturer. föreläsning 9. Maps 1
Datastrukturer föreläsning 9 Maps 1 Grafer och grafalgoritmer Hur implementerar man grafer? Hur genomsöker (traverserar) man grafer? Hur genomsöker man viktade grafer (och hittar kortaste vägen)? Hur beräknar
Läs merAlgoritmer och datastrukturer 2012, fo rela sning 8
lgoritmer och datastrukturer 01, fo rela sning 8 Komplexitet för binära sökträd De viktigaste operationerna på binära sökträd är insert, find och remove Tiden det tar att utföra en operation bestäms till
Läs merFöreläsning 4 Datastrukturer (DAT037)
Föreläsning 4 Datastrukturer (DAT037) Fredrik Lindblad 1 2016-11-10 1 Slides skapade av Nils Anders Danielsson har använts som utgångspunkt Se http://wwwcsechalmersse/edu/year/2015/course/dat037 Förra
Läs merFöreläsning 13 Innehåll
Föreläsning 13 Innehåll Prioritetsköer och heapar Prioritetsköer och heapar ADT prioritetskö Heapar Implementering av prioritetskö med heap Klassen PriorityQueue i java.util Programexempel LPT-algoritmen
Läs merFöreläsning 10 Datastrukturer (DAT037)
Föreläsning 10 Datastrukturer (DAT037) Fredrik Lindblad 1 29 november 2017 1 Slides skapade av Nils Anders Danielsson har använts som utgångspunkt. Se http://www.cse.chalmers.se/edu/year/2015/course/dat037
Läs merDatastrukturer. Föreläsning 5. Maps 1
Datastrukturer Föreläsning 5 Maps 1 Traversering av träd Maps 2 Preordningstraversering Traversera = genomlöpa alla noderna i ett träd Varje nod besöks innan sina delträd Preordning = djupet först Exempel:
Läs merInnehåll. Binära sökträd. Binärt sökträd. AVL-träd. Exempel på ett AVL-träd. ÿdelar av kapitel 15 i boken + OH-bilderna
Innehåll ÿþýüûúùø øö ôó ÿsökträd ÿsökning þ ø øö þ ýú ÿdelar av kapitel 5 i boken + OH-bilderna 2 Binärt sökträd ÿanvänds för sökning i linjära samlingar av dataobjekt, specifikt för att konstruera tabeller
Läs merFöreläsning 7. Träd och binära sökträd
Föreläsning 7 Träd och binära sökträd Föreläsning 7 Träd Binära träd Binärt sökträd som ADT Implementering av binärt sökträd Travestera binärt sökträd Sökning Insättning/borttagning Det är extra mycket
Läs merDAI2 (TIDAL) + I2 (TKIEK)
TNTMN KURSNMN PROGRM: KURSTKNING XMINTOR lgoritmer och datastrukturer I2 (TIL) + I2 (TKIK) 2017/2018, lp 4 LT75 Uno Holmer TI ÖR TNTMN redagen den 1/8 2018, 08.0-12.0 HJÄLPML NSVRIG LÄRR atastrukturer
Läs merLinjärt minne. Sammanhängande minne är ej flexibelt. Effektivt
Binära träd (forts) Ett binärt träd kan lagras i ett enda sammanhängande minne Roten har index 1 Vänster barn till nod i har index 2*i Höger barn till nod i har index 2*i + 1 Föräldern till nod i har index
Läs merTDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 8 Erik Nilsson, Institutionen för Datavetenskap, LiU
TDDC30 Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 8 Erik Nilsson, Institutionen för Datavetenskap, LiU På denna föreläsning: Träd Traversering Insättning, borttagning
Läs merAbstrakta datatyper. Primitiva vektorer. Deklarera en vektor
Abstrakta datatyper 1 Primitiva vektorer Vektorer kan skapas av primitiva datatyper, objektreferenser eller andra vektorer. Vektorer indexeras liksom i C från 0. För att referera en vektor används hakparenteser.
Läs merDatastrukturer och algoritmer. Innehåll. Trie. Informell specifikation. Organisation av Trie. Föreläsning 13 Trie och Sökträd.
Datastrukturer och algoritmer Föreläsning 13 rie och ökträd Innehåll rie rådar rie ökträd tterligare en variant av träd. Vi har tidigare sett: Oordnat träd där barnen till en nod bildar en mängd Ordnat
Läs merRekursiva algoritmer sortering sökning mönstermatchning
Anders Haraldsson 1 Anders Haraldsson 2 Dagens föreläsning Programmering i Lisp Fö 6-7 Rekursiva strukturer rekursiva definitioner rekursiva funktioner rekursiva bevis: induktion - rekursion strukturell
Läs merTDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 9 Jonas Lindgren, Institutionen för Datavetenskap, LiU
TDDC30 Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 9 Jonas Lindgren, Institutionen för Datavetenskap, LiU På denna föreläsning: Prioritetskö Heap Representation som
Läs merTentamen Datastrukturer (DAT036)
Tentamen Datastrukturer (DAT036) Det här är inte originaltesen. Uppgift 6 var felaktigt formulerad, och har rättats till. Datum och tid för tentamen: 2011-12-16, 8:30 12:30. Ansvarig: Nils Anders Danielsson.
Läs merFöreläsning 9 Innehåll
Föreläsning 9 Innehåll Träd, speciellt binära träd egenskaper användningsområden implementering Datavetenskap (LTH) Föreläsning 9 HT 2017 1 / 31 Inlämningsuppgiften De föreläsningar som inlämningsuppgiften
Läs merFredag 10 juni 2016 kl 8 12
KTH CSC, Alexander Baltatzis DD1320/1321 Lösningsförslag Fredag 10 juni 2016 kl 8 12 Hjälpmedel: En algoritmbok (ej pythonkramaren) och ditt eget formelblad. För betyg E krävs att alla E-uppgifter är godkända,
Läs merTDDC74 Programmering: Abstraktion och modellering Datortenta , kl 14-18
TDDC74 Programmering: Abstraktion och modellering Datortenta - 017-10-7, kl 14-18 Läs alla frågorna först och bestäm dig för i vilken ordning du vill lösa uppgifterna. Uppgifterna är inte nödvändigtvis
Läs mer3. Toppkvinnor på hög Låt lådan och de två kvinnornas famnar utgöra stackarna L, K1 respektive K2. Från början finns alla kort i L.
KTH, Nada, Erik Forslin 2D1343, LÖSNING TILL TENTAMEN I DATALOGI FÖR ELEKTRO Lördagen den 8 mars 2003 kl 14 19 Maxpoäng tenta+bonus = 50+7. Betygsgränser: 25 poäng ger trea, 35 ger fyra, 45 ger femma.
Läs merFöreläsning Datastrukturer (DAT037)
Föreläsning Datastrukturer (DAT037) Nils Anders Danielsson 2015-11-23 Idag Mer om grafer: Minsta uppspännande träd (för oriktade grafer). Djupet först-sökning. Minsta uppspännande träd Träd (utan rot)
Läs merTommy Färnqvist, IDA, Linköpings universitet
Föreläsning 8 Sortering och urval TDDC70/91: DALG Utskriftsversion av föreläsning i Datastrukturer och algoritmer 1 oktober 2013 Tommy Färnqvist, IDA, Linköpings universitet 8.1 Innehåll Innehåll 1 Sortering
Läs merMagnus Nielsen, IDA, Linköpings universitet
Föreläsning 7 Introduktion till sortering TDDC91,TDDE22,725G97: DALG Utskriftsversion av föreläsning i Datastrukturer och algoritmer 24 september 2018 Magnus Nielsen, IDA, Linköpings universitet 7.1 1
Läs merTentamen Datastrukturer D DAT 036/INN960
Tentamen Datastrukturer D DAT 036/INN960 18 december 2009 Tid: 8.30-12.30 Ansvarig: Peter Dybjer, tel 7721035 eller 405836 Max poäng på tentamen: 60. Betygsgränser, CTH: 3 = 24 p, 4 = 36 p, 5 = 48 p, GU:
Läs merTvå fall: q Tom sekvens: () q Sekvens av element: (a b c) ; (sum-rec '(2 4 6)) = 12. q Första elementet uppfyller vissa villkor: (2 a b c)
Programmönster: # Listan som sekvens, Rekursiv process Enkel genomgång av sekvens (element på toppnivån i en lista)) TDDC60 Programmering: abstraktion och modellering Föreläsning 5 Rekursiva och iterativa
Läs merInnehåll. Föreläsning 11. Organisation av Trie. Trie Ytterligare en variant av träd. Vi har tidigare sett: Informell specifikation
Innehåll Föreläsning 11 Trie Sökträd Trie och Sökträd 356 357 Trie Ytterligare en variant av träd. Vi har tidigare sett: Oordnat träd där barnen till en nod bildar en mängd Ordnat träd där barnen till
Läs merTentamen kl Uppgift 4. Uppgift 5
2D344 Grundläggande Datalogi för F Tentamen 2003-03-0 kl 4.00 9.00 Inga hjälpmedel. Endast ett svarsalternativ på varje fråga är korrekt. Felaktigt svar eller felaktigt antal ikryssade svarsalternativ
Läs merTentamen Datastrukturer D DAT 036/INN960
Tentamen Datastrukturer D DAT 036/INN960 18 december 2009 Tid: 8.30-12.30 Ansvarig: Peter Dybjer, tel 7721035 eller 405836 Max poäng på tentamen: 60. Betygsgränser, CTH: 3 = 24 p, 4 = 36 p, 5 = 48 p, GU:
Läs merTentamen Datastrukturer, DAT037 (DAT036)
Tentamen Datastrukturer, DAT037 (DAT036) Datum och tid för tentamen: 2017-01-11, 14:00 18:00. Ansvarig: Fredrik Lindblad. Nås på tel nr. 031-772 2038. Besöker tentamenssalarna ca 15:00 och ca 17:00. Godkända
Läs mer13 Prioritetsköer, heapar
Prioritetsköer, heapar 31 13 Prioritetsköer, heapar U 101. En prioritetskö är en samling element där varje element har en prioritet (som används för att jämföra elementen med). Elementen plockas ut i prioritetsordning
Läs merTentamen Datastrukturer (DAT036/DAT037/DIT960)
Tentamen Datastrukturer (DAT036/DAT037/DIT960) Datum och tid för tentamen: 2016-04-07, 14:00 18:00. Författare: Nils Anders Danielsson. (Tack till Per Hallgren och Nick Smallbone för feedback.) Ansvarig:
Läs merTabeller. Programkonstruktion. Moment 8 Om abstrakta datatyper och binära sökträd. Implementering av tabellen. Operationer på tabellen
Programkonstruktion Moment 8 Om abstrakta datatyper och binära sökträd Tabeller En viktig tillämpning är tabellen att ifrån en nyckel kunna ta fram ett tabellvärde. Ett typiskt exempel är en telefonkatalog:
Läs merFöreläsning Datastrukturer (DAT036)
Föreläsning Datastrukturer (DAT036) Nils Anders Danielsson 2013-11-18 Idag Mer om grafer: Minsta uppspännande träd (för oriktade grafer). Prims algoritm. Kruskals algoritm. Djupet först-sökning. Cykel
Läs merInlämningsuppgiften. Föreläsning 9 Innehåll. Träd. Datastrukturer i kursen
Föreläsning 9 Innehåll Inlämningsuppgiften De föreläsningar som inlämningsuppgiften bygger på är nu klara. Det är alltså dags att börja arbeta med inlämningsuppgiften. Träd, speciellt binära träd egenskaper
Läs merLösningsförslag för tentamen i Datastrukturer (DAT037) från
Lösningsförslag för tentamen i Datastrukturer (DAT7) från --9 Nils Anders Danielsson. Träd- och köoperationerna har alla tidskomplexiteten O(log s), där s är antalet element i trädet/kön (notera att jämförelser
Läs merDatastrukturer och algoritmer. Föreläsning 15 Inför tentamen
Datastrukturer och algoritmer Föreläsning 15 Inför tentamen 1 Innehåll Kursvärdering Vi behöver granskare! Repetition Genomgång av gammal tenta 2 Första föreläsningen: målsättningar Alla ska höja sig ett
Läs merLösningsförslag till tentamen Datastrukturer, DAT037 (DAT036), Tiden det tar att utföra en iteration av loopen är oberoende av värdet på
Lösningsförslag till tentamen Datastrukturer, DAT037 (DAT036), 2017-01-11 1. Loopen upprepas n gånger. getat på en dynamisk array tar tiden O(1). member på ett AVL-träd av storlek n tar tiden O(log n).
Läs merBINÄRA TRÄD. (X = pekarvärdet NULL): struct int_bt_node *pivot, *ny; X X X 12 X X 12 X X -3 X X
Algoritmer och Datastrukturer Kary FRÄMLING/Göran PULKKIS (v23) Kap. 7, Sid 1 BINÄRA TRÄD Träd används för att representera olika slags hierarkier som ordnats på något sätt. Den mest använda trädstrukturen
Läs merDatastrukturer, algoritmer och programkonstruktion (DVA104, VT 2015) Föreläsning 6
Datastrukturer, algoritmer och programkonstruktion (DVA104, VT 2015) Föreläsning 6? DAGENS AGENDA Komplexitet Ordobegreppet Komplexitetsklasser Loopar Datastrukturer Några nyttiga regler OBS! Idag jobbar
Läs merDatastrukturer i kursen. Föreläsning 8 Innehåll. Träd rekursiv definition. Träd
Föreläsning 8 Innehåll Datastrukturer i kursen Träd, speciellt binära träd egenskaper användningsområden implementering Undervisningsmoment: föreläsning 8, övningsuppgifter 8, lab 4 Avsnitt i läroboken:
Läs merProgrammeringsmetodik DV1 Programkonstruktion 1. Moment 8 Om abstrakta datatyper och binära sökträd
Programmeringsmetodik DV1 Programkonstruktion 1 Moment 8 Om abstrakta datatyper och binära sökträd PK1&PM1 HT-06 moment 8 Sida 1 Uppdaterad 2005-09-22 Tabeller En viktig tillämpning är tabellen att ifrån
Läs merInom datalogin brukar man använda träd för att beskriva vissa typer av problem. Om man begränsar sig till träd där varje nod förgrenar sig högst två
Binära träd Inom datalogin brukar man använda träd för att beskriva vissa typer av problem. Om man begränsar sig till träd där varje nod förgrenar sig högst två gånger, talar man om binära träd. Sådana
Läs merTENTAMEN I DATASTRUKTURER OCH ALGORITMER DVG B kl. 14:00-19:00
TENTAMEN I DATASTRUKTURER OCH ALGORITMER DVG B03 170117 kl. 14:00-19:00 Ansvarig Lärare: Donald F. Ross Hjälpmedel: Inga. Algoritmerna finns i de respektive uppgifterna eller i bilagarna. *** OBS *** Betygsgräns:
Läs merProgrammering i C++ EDA623 Dynamiska datastrukturer. EDA623 (Föreläsning 11) HT / 31
Programmering i C++ EDA623 Dynamiska datastrukturer EDA623 (Föreläsning 11) HT 2013 1 / 31 Dynamiska datastrukturer Innehåll Länkade listor Stackar Köer Träd EDA623 (Föreläsning 11) HT 2013 2 / 31 Länkade
Läs merORDINARIE TENTAMEN I DATASTRUKTURER OCH ALGORITMER DVG B kl. 08:15 13:15
ORDINARIE TENTAMEN I DATASTRUKTURER OCH ALGORITMER DVG B03 160119 kl. 08:15 13:15 Ansvarig Lärare: Donald F. Ross Hjälpmedel: Inga. Algoritmerna finns i de respektive uppgifterna eller i bilogarna. ***
Läs merQuicksort. Koffman & Wolfgang kapitel 8, avsnitt 9
Quicksort Koffman & Wolfgang kapitel 8, avsnitt 9 1 Quicksort Quicksort väljer ett spcifikt värde (kallat pivot), och delar upp resten av fältet i två delar: alla element som är pivot läggs i vänstra delen
Läs merFöreläsning 5 Datastrukturer (DAT037)
Föreläsning 5 Datastrukturer (DAT037) Nils Anders Danielsson, Fredrik Lindblad 2016-11-14 Förra gången: Cirkulära arrayer Prioritetskö Binära heapar Leftistheapar merge Det verkar inte gå att slå ihop
Läs merTentamen Datastrukturer D DAT 035/INN960
Tentamen Datastrukturer D DAT 035/INN960 22 december 2006 Tid: 8.30-12.30 Ansvarig: Peter Dybjer, tel 7721035 eller 405836 Max poäng på tentamen: 60. (Bonuspoäng från övningarna tillkommer.) Betygsgränser,
Läs merOMTENTAMEN I DATASTRUKTURER OCH ALGORITMER DVG B kl. 08:15 13:15
OMTENTAMEN I DATASTRUKTURER OCH ALGORITMER DVG B03 140818 kl. 08:15 13:15 Ansvarig Lärare: Donald F. Ross Hjälpmedel: Inga. Algoritmerna finns i de respektive uppgifterna. Betygsgräns: *** OBS *** Kurs:
Läs merTräd och koder. Anders Björner KTH
27 Träd och koder Anders Björner KTH 1. Inledning. Det är i flera sammanhang viktigt att representera information digitalt (d.v.s omvandla till sviter av nollor och ettor). Beroende på vilka villkor som
Läs merHitta k största bland n element. Föreläsning 13 Innehåll. Histogramproblemet
Föreläsning 13 Innehåll Algoritm 1: Sortera Exempel på problem där materialet i kursen används Histogramproblemet Schemaläggning Abstrakta datatyper Datastrukturer Att jämföra objekt Om tentamen Skriftlig
Läs merTENTAMEN: Algoritmer och datastrukturer. Läs detta! Uppgifterna är inte avsiktligt ordnade efter svårighetsgrad.
1 (8) TENTMEN: lgoritmer och datastrukturer Läs detta! Uppgifterna är inte avsiktligt ordnade efter svårighetsgrad. örja varje uppgift på ett nytt blad. Skriv inga lösningar i tesen. Skriv ditt idnummer
Läs merFöreläsning Datastrukturer (DAT036)
Föreläsning Datastrukturer (DAT036) Nils Anders Danielsson 2012-11-05 Repetition Förra gången: Listor, stackar, köer. Länkade listor, pekarjonglering. Idag: Cirkulära arrayer. Dynamiska arrayer. Amorterad
Läs merFöreläsning 5. Träd Binära träd Binärt sökträd som ADT Implementering av binärt sökträd Travestera binärt sökträd Sökning Insättning/borttagning
Föreläsning 5 Träd Binära träd Binärt sökträd som ADT Implementering av binärt sökträd Travestera binärt sökträd Sökning Insättning/borttagning Terminologi - träd Ett träd i datalogi består av en rotnod
Läs merTräd - C&P kap. 10 speciellt binära sökträd sid. 452
Föreläsning 10 Träd - C&P kap. 10 speciellt binära sökträd sid. 452 Dessa bilder finns i PDF-format på http://dsv.su.se/courses/pm2/f10/index.html Jozef Swiatycki DSV Bild 1 förälder Träd allmänt Binär-länkad
Läs merProv i DAT 312: Algoritmer och datastrukturer för systemvetare
Prov i DAT 312: Algoritmer och datastrukturer för systemvetare Jacek Malec Datavetenskap, LU 11 april 2003 Datum 11 april 2003 Tid 14 19 Ansvarig lärare Jacek Malec (tel. 03 9890431) Hjälpmedel inga Antal
Läs merOptimala koder. Övre gräns för optimala koder. Gränser. Övre gräns för optimala koder, forts.
Datakompression fö 3 p.3 Datakompression fö 3 p.4 Optimala koder Övre gräns för optimala koder En prefixkod kallas optimal om det inte existerar någon annan kod (för samma alfabet och sannolikhetsfördelning)
Läs merOptimala koder. Det existerar förstås flera koder som har samma kodordsmedellängd. Enklaste fallet är att bara byta 0:or mot 1:or.
Datakompression fö 3 p.1 Optimala koder En prefixkod kallas optimal om det inte existerar någon annan kod (för samma alfabet och sannolikhetsfördelning) som har lägre kodordsmedellängd. Det existerar förstås
Läs merProgrammering för Språkteknologer II. Innehåll. Associativa datastrukturer. Associativa datastrukturer. Binär sökning.
Programmering för Språkteknologer II Markus Saers markus.saers@lingfil.uu.se Rum -040 stp.lingfil.uu.se/~markuss/ht0/pst Innehåll Associativa datastrukturer Hashtabeller Sökträd Implementationsdetaljer
Läs merOMTENTAMEN I DATASTRUKTURER OCH ALGORITMER DVG B kl. 14:15 19:15
OMTENTAMEN I DATASTRUKTURER OCH ALGORITMER DVG B03 150609 kl. 14:15 19:15 Ansvarig Lärare: Donald F. Ross Hjälpmedel: Inga. Algoritmerna finns i de respektive uppgifterna eller i bilogarna. *** OBS ***
Läs merTentamen Datastrukturer, DAT037 (DAT036)
Tentamen Datastrukturer, DAT037 (DAT036) Datum, tid och plats för tentamen: 2017-08-17, 8:30 12:30, M. Ansvarig: Fredrik Lindblad. Nås på tel nr. 031-772 2038. Besöker tentamenssalarna ca 9:30 och ca 11:00.
Läs merTENTAMEN: Algoritmer och datastrukturer. Läs detta!
(6) TENTAMEN: Algoritmer och datastrukturer Läs detta! Uppgifterna är inte avsiktligt ordnade efter svårighetsgrad. Börja varje uppgift på ett nytt blad. Skriv ditt idnummer på varje blad (så att vi inte
Läs merProgrammering i C++ EDAF30 Dynamiska datastrukturer. EDAF30 (Föreläsning 11) HT / 34
Programmering i C++ EDAF30 Dynamiska datastrukturer EDAF30 (Föreläsning 11) HT 2014 1 / 34 Dynamiska datastrukturer Innehåll Länkade listor Stackar Köer Träd Säkrare minneshantering (shared_ptr och unique_ptr)
Läs mer