Si implementino in Linguaggio C una libreria per la gestione di uno Stack che possa contenere al più MAX elementi.
Si implementino in Linguaggio C una libreria per la gestione di una Coda che possa contenere al più MAX elementi.
Si implementi inoltre una libreria in linguaggio C per la gestione di una coda di MAX elementi utilizzando la libreria per Stack precedentemente implemen-tata.
In particolare, questa libreria deve prescindere “il più possibile” dal modo in cui sono stati implementati gli stack.
Discutere sulle eventuali cambiamenti di complessità di dequeue e enqueue in questa nuova implementa-zione rispetto alle implementazioni viste nella lezione precedente.
Siano H e T sue Stack tali che la coda sia il risultato della concatenazione dello Stack H (partendo dal Top al Bottom) con lo Stack T (dal Bottom al Top).
Nella situazione iniziale, tutti gli elementi sono posti nello Stack H dove l’elemento al Top è la testa (Head) della coda, mentre quello al Bottom rappresenta la fine della coda (Tail).
Quando H è vuoto allora si svuota il rewerse di T in H. In dettaglio, per ogni elemento di T, si farà il Pop in T e il Push in H, fino a quando T non diventa vuoto.
Per cancellare un elemento dalla coda, si farà un POP dallo stack H, il quale non sarà mai vuoto a meno che l’intera coda non diventi vuota.
Per inserire un elemento nella coda si fa un Push nello Stack T.
Scrivere un programma in linguaggio C per la gestione di code che possa funzionare indipendentemente da quale delle due librerie precedentemente definite venga utilizzata.
Attenzione: L’implementazione deve avvenire modificando “al minimo” il main() già implementato per la gestione delle code visto nella precedente lezione.
Domanda: Quante volte ciascun elemento sarà oggetto di un Push e di un Pop prima di lasciare la coda?
L’esercizio completo va consegnato via mail al tutor entro 5 giorni lavorativi allegando un breve documentazione (1-2 pagine).
1. Introduzione al Corso - Il Linguaggio C (I parte)
2. Linguaggio C – Seconda Parte
3. Ordinamento, Ricorsione e Code di Priorità
4. Esercitazione su Ricorsione e Code di Priorità
5. Stack e Code
6. Esercitazione di Laboratorio su Stack e Code
7. Implementazioni di Liste puntate
8. Esercitazione di laboratorio su Liste Puntate Semplici
9. Implementazioni di Liste Doppiamente Puntate e Circolari
10. Esercitazione di laboratorio su Liste Doppiamente puntate
12. Esercitazione di laboratorio su Alberi Binari di Ricerca
13. Alberi Binari di Ricerca. Cancellazione di un nodo
14. Esercizio di Laboratorio. Gioco su alberi
15. Grafi: Implementazione ed operazioni di base
16. Esercitazione di laboratorio: Implementazione operazioni di bas...
17. Grafi: Inserimento e Cancellazione di un nodo. Visite in ampiez...
18. Esercitazione di laboratorio: Problema del venditore Prima part...
19. Componenti fortemente connesse e alberi minimi di copertura
20. Esercitazione di laboratorio: Problema del venditore Seconda pa...