Presentation laddar. Vänta.

Presentation laddar. Vänta.

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

Liknande presentationer


En presentation över ämnet: "1 Föreläsning 10 Länkade lista Stack och Kö Att arbeta med listor."— Presentationens avskrift:

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

2 2 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

3 3 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.

4 4 Kö eller Stack? För att lösa följande problem vilken typ av länkad lista passar bättre? 1.Vi vill beräkna följande: 2*(3+4) + 3*(5-1) 2.Vad har programmeraren använt i simamanager?

5 5 Polish calculator 2*(3+4) + 3*(5-1) Vi skriver om: 234+*351-*+

6 6 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

7 7 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.

8 8 Att gå igenom listan 1 top 107 None p p=top; while p!=None: print p.value p=p.next

9 9 Att ta bort en post ur stacken 1 top 107 None pop(): x=top.value top=top.next return x

10 10 Att lägga till en post i listan 1 top 107 None push(x): n=Nod(x) n.next=top top=n 3 None

11 11 Stack och Kö top None … first None … last Stack Kö

12 12 Binära träd root None

13 13 Nivåer i binärträd 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 rot

14 14 Exempel class Nod: tal=None vänster=None höger=None def __init__(self,t): self.tal=t

15 15 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)


Ladda ner ppt "1 Föreläsning 10 Länkade lista Stack och Kö Att arbeta med listor."

Liknande presentationer


Google-annonser