Presentation laddar. Vänta.

Presentation laddar. Vänta.

Stack och Kö -Implementering -Tilllämpningar -- Kapitel 16, 11.

Liknande presentationer


En presentation över ämnet: "Stack och Kö -Implementering -Tilllämpningar -- Kapitel 16, 11."— Presentationens avskrift:

1 Stack och Kö -Implementering -Tilllämpningar -- Kapitel 16, 11

2 Principen med en stack Stacken är en LIFO datastruktur  Last In – First Out  push() Lägg till data i stacken (överst)  pop() Hämta data från stacken (överst)

3 Principen med en stack Stack push( ’S’ ) push( ’U’ ) push( ’K’ ) push( ’G’ ) push( ’R’ ) pop( ) push( ’Ä’ ) pop( ) S U K K G R Ä

4 Användningsområden Datorteknik  Metod anrop, Kompilatorer Beräkningsmaskin Omvänd polsk (postfix) notation (1950-talet) Kräver ”ett annat sorts tänkande...” Kraftfull!

5 Implementeringar Statisk implementation  Arraybaserad Dynamiska implementation  Länkade listor

6 Med en array... ToS – Top of Stack  Indexerar senast inlagda data Statisk maxstorlek  Dubblering möjlig men kostsam Snabb

7 Exempel public class Stack { private... public Stack() { } public void push(AnyType data) { } public void pop() { } }

8 Tillstånd / Konstruktorn private AnyType [] array; private int ToS; public Stack() { array = (AnyType)new Object[50]; ToS = -1; }

9 Metoden -- ’void push(AnyType data)’ public void push(AnyType data) { if((ToS + 1) < array.length) { ToS++; array[ToS] = data; } }

10 Metoden -- ’Object pop()’ public AnyType pop() { AnyType value = null; if(ToS >= 0) { value = array[ToS]; ToS--; } return value; }

11 Med en länkad lista... Arbetar bara mot länken närmast huvudet  Lägger in först i listan  Tar ut först ur listan Långsam  Minnesallokering

12 Exempel public class Stack { private... public Stack() { } public void push(Object x) { } public Object pop() { }

13 Tillstånd / Konstruktorn private ListNode topofstack; public Stack() { topofstack = null; }

14 Metoden -- ’void push(Object data)’ public void push(Object x) { topofstack=new ListNode(x,topofstack); }

15 Metoden -- ’Object pop()’ public Object pop() { ListNode temp=topofstack; topofstack=topofstack.next return temp.element; }

16 Implementationsjämförelse Statisk implementation  (Kan ha) mycket outnyttjat minne  Snabb Dynamisk implementation  Minimalt outnyttjat minne  Långsam

17 Tillämpning-kompilator och miniräknare Beräkning av postfix uttryck -aritmetiska uttryck i infix notation - aritmetiska uttryck i postfix notation Infix till postfix (med en operator stack) Beräkning av postfix uttryck med hjälp av träd.


Ladda ner ppt "Stack och Kö -Implementering -Tilllämpningar -- Kapitel 16, 11."

Liknande presentationer


Google-annonser