La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Programmazione di Calcolatori

Presentazioni simili


Presentazione sul tema: "Programmazione di Calcolatori"— Transcript della presentazione:

1 Programmazione di Calcolatori
Lezione XXIII Il tipo di dato astratto stack Programmazione di Calcolatori: il tipo di dato astratto stack

2 Lo stack L’idea: LIFO: Last In First Out
Programmazione di Calcolatori: il tipo di dato astratto stack

3 Lo stack Possibile impiego (tra gli altri): Backtracking:
- gestione del processo di costruzione incrementale di soluzioni tipico del backtracking Backtracking: - tecnica algoritmica basata sulla costruzione incrementale di soluzioni attraverso una sequenza di scelte - se una scelta si rivela non corretta la costruzione della soluzione riprende dall’ultimo punto di decisione che offre almeno un’alternativa alla scelta che ha generato il fallimento (backtrack) Programmazione di Calcolatori: il tipo di dato astratto stack

4 Gli stack di valori di tipo T (StackT)
Modello: sequenza di elementi di tipo T, o più formalmente StackT  <a1, a2, …, an>, aiT, i = 1, …, n Operazioni a) InitStack:  StackT Valore: alcuno Effetto: InitStack()  <> Programmazione di Calcolatori: il tipo di dato astratto stack

5 Gli stack di valori di tipo T
b) Push: StackT x T StackT Valore: alcuno Effetto: Push(<a1, …, an>, a)  <a1, …, an, a> Esempio: 8 Push(<3, 1, 4>, 8)  < 3, 1, 4, 8> 1 3 4 Programmazione di Calcolatori: il tipo di dato astratto stack

6 Gli stack di valori di tipo T
c) Top: StackT  T Valore: Top(<a1, …, an-1, an>) = an Effetto: alcuno Esempio: 1 3 4 Top(<3, 1, 4>) = 4 Programmazione di Calcolatori: il tipo di dato astratto stack

7 Gli stack di valori di tipo T
d) Pop: StackT  StackT x T Valore: Pop(<a1, …, an-1, an>) = an Effetto: Pop(<a1, …, an-1, an>)  <a1, …, an-1> Esempio: 1 3 4 Pop(<3, 1, 4>) = 4 Programmazione di Calcolatori: il tipo di dato astratto stack

8 Gli stack di valori di tipo T
e) EmptyStack: StackT  Bool Valore: EmptyStack(<>) = True EmptyStack(<a1, … >) = False Effetto: alcuno f) ResetStack: StackT  StackT Valore: alcuno Effetto: ResetStack(<a1, …, an-1, an>)  <> Programmazione di Calcolatori: il tipo di dato astratto stack


Scaricare ppt "Programmazione di Calcolatori"

Presentazioni simili


Annunci Google