Magnus Nielsen, IDA, Linköpings universitet

Relevanta dokument
Föreläsning 7. Splay-träd. Prioritetsköer och heapar. Union/Find TDDC70/91: DALG. Innehåll. Innehåll. 1 Splay-träd

Tommy Färnqvist, IDA, Linköpings universitet. 2 Hashtabeller Kollisionshantering Att välja hashfunktion... 10

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

TDDI16 Datastrukturer och algoritmer. Prioritetsköer, heapar, Union/Find

Tommy Färnqvist, IDA, Linköpings universitet. 1 ADT Map/Dictionary Definitioner Implementation... 2

Magnus Nielsen, IDA, Linköpings universitet

Uppsala universitet Institutionen för lingvistik och filologi. Grundbegrepp: Noder (hörn) och bågar (kanter)

Föreläsning Datastrukturer (DAT036)

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

Datastrukturer. föreläsning 10. Maps 1

Föreläsning 5 TDDC91,TDDE22,725G97: DALG. Föreläsning i Datastrukturer och algoritmer 18 september 2018

Operativsystemets uppgifter. Föreläsning 6 Operativsystem. Skydd, allmänt. Operativsystem, historik

Fö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 10 Datastrukturer (DAT037)

Datastrukturer. Föreläsning 5. Maps 1

Föreläsning 9 Datastrukturer (DAT037)

Magnus Nielsen, IDA, Linköpings universitet

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

Föreläsning 5 Datastrukturer (DAT037)

Tommy Färnqvist, IDA, Linköpings universitet. 1 Prioritetsköer Heapar Tillämpning... 3

Tommy Färnqvist, IDA, Linköpings universitet

13 Prioritetsköer, heapar

Datastrukturer. föreläsning 9. Maps 1

Datastrukturer. föreläsning 8. Lecture 6 1

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

H1009, Introduktionskurs i matematik Armin Halilovic. Definition. Mängden av alla lösningar till en ekvation kallas ekvationens lösningsmängd.

Föreläsning 4 Datastrukturer (DAT037)

Träd Hierarkiska strukturer

Föreläsning 2. Stackar, köer och listor TDDC91,TDDE22,725G97: DALG. Innehåll. 1 ADT stack. 1.1 Tillämpningar

Lösningar Datastrukturer TDA

Föreläsning Datastrukturer (DAT036)

Föreläsning 4 Datastrukturer (DAT037)

Tommy Färnqvist, IDA, Linköpings universitet

Sidor i boken

Datastrukturer. föreläsning 3. Stacks 1

SF1625 Envariabelanalys

Där a mol av ämnet A reagerar med b mol av B och bildar c mol av C och d mol av D.

f(x)dx definieras som arean av ytan som begränsas av y = f(t), y = 0, t = a och t = b, se figur.

Föreläsning Datastrukturer (DAT036)

Föreläsning Datastrukturer (DAT037)

Datastrukturer. föreläsning 10. Maps 1

Binä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

DAI2 (TIDAL) + I2 (TKIEK)

Tommy Färnqvist, IDA, Linköpings universitet. 1 ADT Map/Dictionary Definitioner Implementation... 2

Datastrukturer, algoritmer och programkonstruktion (DVA104, VT 2015) Föreläsning 6

Föreläsning 7 Datastrukturer (DAT037)

Föreläsning 2 Datastrukturer (DAT037)

Trigonometri. 2 Godtyckliga trianglar och enhetscirkeln 2. 3 Triangelsatserna Areasatsen Sinussatsen Kosinussatsen...

T-konsult. Undersökningsrapport. Villagatan 15. Vind svag nordvästlig, luftfuktighet 81%, temp 2,3 grader

Uppsala Universitet Matematiska Institutionen Bo Styf. Sammanfattning av föreläsningarna 5-7.

Tommy Färnqvist, IDA, Linköpings universitet. 1 Sortering Heap-sort Merge-sort Sammanfattning... 10

Uppsala Universitet Matematiska Institutionen Thomas Erlandsson

13 Generaliserade dubbelintegraler

Lösningsförslag för tentamen i Datastrukturer (DAT037) från

Prov i DAT 312: Algoritmer och datastrukturer för systemvetare

Innehå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

Algoritmer och datastrukturer 2012, fo rela sning 8

Lösningsförslag till tentamen Datastrukturer, DAT037,

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

Associativa lagen för multiplikation: (ab)c = a(bc). Kommutativa lagen för multiplikation: ab = ba.

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

Seminarium 13 Innehåll

KVADRATISKA MATRISER, DIAGONALMATRISER, MATRISENS SPÅR, TRIANGULÄRA MATRISER, ENHETSMATRISER, INVERSA MATRISER

Under 2018 startades en ny försöksserie i

FÖ 5: Kap 1.6 (fr.o.m. sid. 43) Induktionsbevis

Tentamen Programmeringsteknik II Skrivtid: Skriv läsligt! Använd inte rödpenna! Skriv bara på framsidan av varje papper.

Datastrukturer, algoritmer och programkonstruktion (DVA104, HT 2014) Föreläsning 5

Föreläsning Datastrukturer (DAT036)


ADT Set, Map, Dictionary. Iteratorer TDDD86: DALGP. Tommy Färnqvist, IDA, Linköpings universitet

Appendix. De plana triangelsatserna. D c

Finaltävling den 20 november 2010

Föreläsning Datastrukturer (DAT037)

SF1625 Envariabelanalys

Föreläsning 13 Innehåll

Föreläsning 9 Innehåll

Föreläsning Datastrukturer (DAT036)

Listor = generaliserade strängar. Introduktion till programmering SMD180. Föreläsning 8: Listor. Fler listor. Listindexering.

Skriftlig tentamen i Elektromagnetisk fältteori för π3 (ETEF01) och F3 (ETE055)

Tommy Färnqvist, IDA, Linköpings universitet. 1 Administrativ information Upplägg... 1

Föreläsning 7: Trigonometri

Stack, specifikation. Stack och Kö. Y s t M A p. Stack. <== > Y s t M A p <== > Prioritetskö

Abstrakta datatyper. Primitiva vektorer. Deklarera en vektor

är ett tal som betecknas det(a) eller Motivering: Determinanter utvecklades i samband med lösningsmetoder för kvadratiska linjära system.

Teknisk manual STANDARD/GAS/EL. GATE Rehab Development AB

Ett generellt träd är. Antingen det tomma trädet, eller en rekursiv struktur: rot /. \ /... \ t1... tn

Finita automater, reguljära uttryck och prefixträd. Upplägg. Finita automater. Finita automater. Olika finita automater.

TMV151/TMV181. Fredrik Lindgren. 19 november 2013

Föreläsning 8 Datastrukturer (DAT037)

Uppföljning till lektion 5 om pekare. Grundläggande symboler. En struct, en pekartyp och lite variabler

Produktionssystem för ekologisk odling av trädgårdsblåbär Organic production systems in Northern highbush blueberries

Sfärisk trigonometri

============================================================

Lösningsförslag till tentamen Datastrukturer, DAT037 (DAT036), Tiden det tar att utföra en iteration av loopen är oberoende av värdet på

M6410C,L / M7410C Öka / minska ställdon

Uppsala Universitet Matematiska Institutionen Bo Styf. Genomgånget på föreläsningarna Föreläsning 16-17, 2010:

Linjärt minne. Sammanhängande minne är ej flexibelt. Effektivt

1. (6p) (a) Använd delmängdskonstruktionen för att tillverka en DFA ekvivalent med nedanstående NFA. (b) Är den resulterande DFA:n minimal? A a b.

Tommy Färnqvist, IDA, Linköpings universitet

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

Transkript:

Föreläsning 6 Sply-trä. rioritetsköer oh hepr. TDDC91,TDDE22,725G97: DALG Utskriftsversion v föreläsning i Dtstrukturer oh lgoritmer 19 septemer 2017 Mgnus Nielsen, IDA, Linköpings universitet 6.1 Innehåll Innehåll 1 Sply-trä 1 2 rioritetsköer 8 3 Hepr 8 6.2 1 Sply-trä Binär sökträ är inte unik Kom ihåg et inär sökträet: Enkelt tt sätt in oh t ort element, men... lnsen estäms v orningen på insättningr oh orttgningr. Kominer me heuristiken håll nyligen nvän element först för listor? Oft nvän element ör finns när roten! insert: 1,2,4,5,8 insert: 5,2,1,4,8 6.3 Opertionen sply(k) Utför en norml sökning efter k, kom ihåg noern vi psserr... Märk en sist noen vi unersöker me Om k finns i T, finns k i noen, nnrs är föräler till ett tomt trä Återvän till roten oh gör en rottion vi vrje no för tt flytt uppåt i träet... (3 fll) 6.4 1

Opertionen sply(k) zig: prent() är roten: roter kring 6.5 Opertionen sply(k) zig-zig: oh prent() är ägge vänsterrn (eller ägge högerrn): utför två rottioner för tt flytt upp 6.6 Opertionen sply(k) zig-zg: En v oh prent() är ett vänsterrn oh en nr är ett högerrn eller vie vers: utför två rottioner i olik riktningr Oserver tt ess rottioner kn ök träets höj! 6.7 2

fin oh insert funtion FIND(k, T ) SLAY(k,T ) if KEY(OOT(T )) = k then return (k, v) else return null funtion INSET(k, v, T ) sätt in (k,v) som i ett inärt sökträ SLAY(k,T ) 6.8 Exempel: insättning v 14 6.9 Exempel: insättning v 14 3

6.10 Exempel: insättning v 14 6.11 Exempel: insättning v 14 4

6.12 Exempel: insättning v 14 6.13 Exempel: insättning v 14 5

6.14 elete funtion DELETE(k, T ) if k finns i ett löv then gör SLAY på förälern till lövet else if k finns i en intern no then ersätt noen me ess föregångre i inorer gör SLAY på förälern till föregångren Det går förstås tt nvän efterföljren i inorer okså. 6.15 Exempel: orttgning v 8 6.16 6

Exempel: orttgning v 8 6.17 Exempel: orttgning v 8 6.18 restn Vrje opertion kn ehöv utförs på ett totlt olnsert trä lltså ingen grnti för ti O(logn) i värst fllet Amortere tien är logritmisk vrje sekvens v m opertioner, utför på ett initilt tomt trä, tr totlt O(mlogm) ti 7

lltså är en mortere kostnen/tien för en opertion O(logn) även om enskil opertioner kn ete sig myket värre 6.19 2 rioritetsköer rioritetsköer En vnligt förekommne sitution: Väntelist (johntering på fler nvänrtorer, simulering v hänelser) Om en resurs lir leig, välj ett element från väntelistn Vlet är sert på någon prtil/linjär orning: ADT prioritetskö joet me högst prioritet sk körs först, vrje hänelse sk inträff vi en viss tipunkt; hänelsern sk erets i tisorning Linjärt orn mäng K v nyklr Vi lgrr pr (k,v) (som i ADT Ditionry), fler pr me smm nykel är tillåtet en vnlig opertion är tt hämt pr me miniml nykel Opertioner på en prioritetskö : mkeempty() isempty() size() min(): hitt ett pr (k,v) som hr minimlt k i ; returner (k,v) insert(k,v): sätt in (k,v) i removemin(): t ort oh returner ett pr (k,v) i me minimlt k; error om är tom 6.20 6.21 Implementtion v prioritetsköer Vi kn t.ex. nvän (sortere) länke listor, BST eller Skip-listor En nnn ié: nvän ett fullstänigt inärt trä är roten i vrje (el)trä T innehåller et minst elementet i T Det här är ett prtiellt ornt trä, okså kllt hep! 6.22 3 Hepr Att uppter en hepstruktur Me sist lövet menr vi en sist noen i en trversering i levelorer removemin() // t ort roten Ersätt roten me sist lövet Återställ en prtiell orningen genom tt yt noer neåt own-hep uling insert(, k, v) Sätt in ny no (k,v) efter sist lövet Återställ en prtiell orningen genom up-hep uling 6.23 8

Egenskper size(), isempty(), min(): O(1) insert(), removemin(): O(logn) Kom ihåg rryrepresenttionen v BST Ett fullstänigt inärt trä... Kompkt rryrepresenttion Bule-up oh ule-own hr sn implementtioner 6.24 Exempel: ule-up efter insert(4,15) 6.25 Hepvrinter Olik prtilorningr minst nykeln i roten (minhep) störst nykeln i roten (mxhep) 6.26 9