Föreläsning 10 Länkade lista Stack och Kö Att arbeta med listor

Slides:



Advertisements
Liknande presentationer
© Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2004 Datastrukturer och algoritmer Föreläsning 4.
Advertisements

Funktioner och programorganisation
1 Logikprogrammering ons 11/9 David Hjelm. 2 Repetition Listor är sammansatta termer. De består av en ordnad mängd element. Elementen i en lista kan vara.
2D1311 Programmeringsteknik med PBL
Algoritmer och data strukturer -Länkade listor
Sökning och sortering Linda Mannila
Programmeringsteknik
Programmeringsteknik Föreläsning 6 Skolan för Datavetenskap och kommunikation.
Fortsättningskurs i Programmering lektion 6
Programmeringsteknik Föreläsning 4 Skolan för Datavetenskap och kommunikation.
© Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 Datastrukturer och algoritmer Föreläsning 4.
Binära Sökträd, kapitel 19
Föreläsning 2 Datastrukturer Abstrakta datastrukturer Stack
Föreläsning 6 Länkade lista Komplexitet Linjärsökning & binärsökning
Föreläsning 4 Python: mera om funktioner och parametrar
2D1311 Programmeringsteknik med PBL Föreläsning 6 Skolan för Datavetenskap och kommunikation.
2D1311 Programmeringsteknik med PBL Föreläsning 7 Skolan för Datavetenskap och kommunikation.
2D1311 Programmeringsteknik med PBL Föreläsning 4 Skolan för Datavetenskap och kommunikation.
C-programmering ID120V William Sandqvist Länkad lista
Tar fram v ur kön v = R(true,0,Null) och q = (). d = 0 Leta sedan fram grannarna = {A, B} För granne A: newDist = 0+4 = 4. Ej besökt. q = (A(true,4,R))
Föreläsning 5 Python: argument från kommando-tolken
© Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 Föreläsning 7 Träd.
Stora additionstabellen
Föreläsning 4 Kö Implementerad med array Implementerad med länkad lista Djup kontra bredd Bredden först mha kö.
Vektorer (klassen Vector) Sortering
Listor En lista är en föränderlig ordnad samling objekt.
Sid period2CD5250 OOP med C++ Mats Medin MDH/IDT Generiska algoritmer Kan användas på containertyper och arrays Använder iteratorer Implementerar.
DD1311 P ROGRAMMERINGSTEKNIK MED PBL Föreläsning 9 Skolan för Datavetenskap och kommunikation.
Riktade listor i C och Java Lösning till gruppövning 1.
1 Föreläsning 6 Programmeringsteknik och Matlab 2D1312/2D1305 Metoder & parametrar Array API och klassen ArrayList.
Logikprogrammering 21/10 Binära träd
Föreläsning 5 Arrayer & ArrayList Hur man använder API:n
Föreläsning 8 Programmeringsteknik och Matlab DD1312 Klassmetoder Egen modul, Self Metoderna: __str__, __lt__,… Meddelande Arv, Överlagring av metoder,
Datastrukturer och algoritmer
1 Programmera med strängar nr 9 Tal till sträng Sträng till tal Grep Sträng till lista av ord.
Prioritets Köer (Priority Queues ), Graph Data Structures & Problem Solving using Java --Kap 21,14.
William Sandqvist C-programmering ID120V Stack och Kö William Sandqvist
För utveckling av verksamhet, produkter och livskvalitet. Stack och Kö - Implementering - Tilllämpningar.
Datastrukturer och algoritmer
OOP F14:1 Stefan Möller OOP Objekt-orienterad programmering Föreläsning 14 Repetition Tips inför inlämningsuppgift 2.
1 ITK:P2 F6 Sortering av generiska containerklasser DSV Peter Mozelius.
Stack och Kö -Implementering -Tilllämpningar -- Kapitel 16, 11.
Föreläsning 4 Listor, tupler, och for-loopar. Listor En lista är en föränderlig ordnad samling objekt. Listor skapas med hakparenteser. lista = [12,13,14,15]
© Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 Föreläsning 12 Sökning och Sökträd.
Graph och graph-algoritmer. Några enkla graph teorier Hur IP trafik hittar destinationen i Internät ? GPS-system ? Sociala nätverk. Vanligaste frågeställningar:
Programmeringsteknik Föreläsning 8 Skolan för Datavetenskap och kommunikation.
Länkade listor Binära träd
Föreläsning 7 Programmeringsteknik och Matlab DD1315 Kommandotolk parametrar Klass Instans Metod konstruktor.
2D1311 Programmeringsteknik med PBL Föreläsning 4 Skolan för Datavetenskap och kommunikation.
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
Jonny Karlsson PROCESSPROGRAMMERING Föreläsning 7 ( ) Innehåll: -IPC: Meddelandeköer.
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.
För utveckling av verksamhet, produkter och livskvalitet. Algoritmer och datastrukturer - En annan sort tänkande, rekursiva metoder -Datastrukturen träd,
1 Föreläsning2 Operativsystem. 2 Talsystem Decimal (bas 10): 0,1,2,…,8,9 Binär talsystem (bas 2): endast 1 och 0 Hexadecimal talsystem (bas 16): 0,1,…9,A,…,E,F.
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.
© Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 Föreläsning 9 Grafalgoritmer.
TILLÄMPAD DATALOGI (TILDA) Övningsgrupp 2 Marcus Hjelm
TILLÄMPAD DATALOGI (TILDA) Övning 1 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.
Programmeringsteknik
© Anders Broberg, Lena Kallin Westin, 2007 Datastrukturer och algoritmer Föreläsning 14.
För utveckling av verksamhet, produkter och livskvalitet. Algoritmer och Datastrukturer -- Kap 21,14 Prioritets Köer (Priority Queues ), Graph.
Anders Sjögren Data (i primärminnet) som en länkad lista datatypen för varje element i listan är en struktur, post ( struct )
© Anders Broberg, Lena Kallin Westin, 2007 Datastrukturer och algoritmer Föreläsning 4.
För utveckling av verksamhet, produkter och livskvalitet. Algoritmer och datastructurer - En annan sort tänkande, rekursiva metoder -Datastrukturen träd.
Länkade listor á la C/C++
Föreläsning 8: Exempel och problemlösning
Presentationens avskrift:

Föreläsning 10 Länkade lista Stack och Kö Att arbeta med listor Datalogi, Föreläsning 7 2017-04-06 Föreläsning 10 Länkade lista Stack och Kö Att arbeta med listor Vahid Mosavat, Nada, KTH

Datalogi, Föreläsning 7 2017-04-06 Länkad lista … Där varje post har en länk till en annan post av samma typ. Exempel: varuvagnar, tågvagnar o.s.v. … En post Vahid Mosavat, Nada, KTH

Stack och Kö Stack är en länkad lista som har följande egenskap: Datalogi, Föreläsning 7 2017-04-06 Stack och Kö Stack är en länkad lista som har följande egenskap: när man vill lägga till en ny post i listan då hamnar den nya posten ovanpå (först i listan) alla andra. när vi vill ta bort en post från listan så tas bort posten som finns på toppen (först i listan) av listan. Kö är en länkad lista som har följande egenskap: när man vill lägga till en ny post i listan då hamnar den nya posten i slutet av listan. när vi vill ta bort en post från listan så tas bort från början av listan. Vahid Mosavat, Nada, KTH

Datalogi, Föreläsning 7 2017-04-06 Kö eller Stack? För att lösa följande problem vilken typ av länkad lista passar bättre? Vi vill beräkna följande: 2*(3+4) + 3*(5-1) Vad har programmeraren använt i simamanager? Vahid Mosavat, Nada, KTH

Polish calculator 2*(3+4) + 3*(5-1) Vi skriver om: 2 3 4 + * 3 5 1 - * Datalogi, Föreläsning 7 2017-04-06 Polish calculator 2*(3+4) + 3*(5-1) Vi skriver om: 2 3 4 + * 3 5 1 - * + Vahid Mosavat, Nada, KTH

Vilka metoder ska en kö ha? Datalogi, Föreläsning 7 2017-04-06 Vilka metoder ska en kö ha? Det som är viktig i en kö är den första och den sista posten. Varför? enqueue(post) # eller put(post) Lägger en post sist i kön dequeue() # eller get() Returnerar första posten i kön och tar bort posten från kön Vahid Mosavat, Nada, KTH

Vilka metoder ska en stack ha? Datalogi, Föreläsning 7 2017-04-06 Vilka metoder ska en stack ha? En stack ska bara ta reda på det sista posten i listan. Varför? push(p) Metoden push lägger posten p på toppen av stacken. pop() Metoden pop returnerar posten som finns på toppen av stacken och tar bort posten från stacken. Vahid Mosavat, Nada, KTH

Att gå igenom listan top 1 10 7 p p=top; while p!=None: print p.value Datalogi, Föreläsning 7 2017-04-06 Att gå igenom listan top 1 10 7 None p p=top; while p!=None: print p.value p=p.next Vahid Mosavat, Nada, KTH

Att ta bort en post ur stacken Datalogi, Föreläsning 7 2017-04-06 Att ta bort en post ur stacken top 1 10 7 None pop(): x=top.value top=top.next return x Vahid Mosavat, Nada, KTH

Att lägga till en post i listan Datalogi, Föreläsning 7 2017-04-06 Att lägga till en post i listan top 1 10 7 None 3 None push(x): n=Nod(x) n.next=top top=n Vahid Mosavat, Nada, KTH

Stack och Kö Stack top … Kö last first … None None Datalogi, Föreläsning 7 2017-04-06 Stack och Kö Stack top … None Kö last first … None Vahid Mosavat, Nada, KTH

Binära träd root None None None None None None None None None None Datalogi, Föreläsning 7 2017-04-06 Binära träd root None None None None None None None None None None None None None Vahid Mosavat, Nada, KTH

Datalogi, Föreläsning 7 2017-04-06 Nivåer i binärträd rot 1 10 2 5 11 3 1 4 7 13 4 8 3 6 2 12 14 15 9 Antal nivå i ett fullt binärträd = log (N+1) , där N är antalet post i trädet. I detta exempel vi har 15 poster och log(15+1) alltså 4 nivåer Vahid Mosavat, Nada, KTH

Exempel class Nod: tal=None vänster=None höger=None Datalogi, Föreläsning 7 2017-04-06 Exempel class Nod: tal=None vänster=None höger=None def __init__(self,t): self.tal=t Vahid Mosavat, Nada, KTH

Räkna antal poster i binärträd Datalogi, Föreläsning 7 2017-04-06 Räkna antal poster i binärträd antal( r ): if r == None: return 0 return 1 +antal(r.vänster)+ antal(r.höger) Vahid Mosavat, Nada, KTH