• Non ci sono risultati.

Esercitazione di Esercitazione di laboratoriolaboratorio

N/A
N/A
Protected

Academic year: 2021

Condividi "Esercitazione di Esercitazione di laboratoriolaboratorio"

Copied!
2
0
0

Testo completo

(1)

1

Murano Aniello - Lab. di ASD

Sesta Lezione 1

Laboratorio di Algoritmi e Strutture Dati

Laboratorio di Algoritmi e Laboratorio di Algoritmi e

Strutture Dati Strutture Dati

Aniello Murano Aniello Murano http://

http://people.na.infn.it people.na.infn.it/ /~murano ~murano/ /

Murano Aniello - Lab. di ASD

Sesta Lezione 2

Esercitazione di Esercitazione di

laboratorio

laboratorio

(2)

2

Murano Aniello - Lab. di ASD

Sesta Lezione 3

Esercizio

Si implementi in linguaggio C una gestione di una coda di n elementi con due Stack.

Suggerimenti:

¾

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

Murano Aniello - Lab. di ASD

Sesta Lezione 4

Implementazione

Scrivere un programma in linguaggio C che implementi le funzioni Dequeue e Enqueue, viste a lezione, utilizzando due stack per la gestione della coda.

Attenzione: L’implementazione deve avvenire modificando al minimo il main() già implementato per la gestione delle code.

Inoltre, le funzioni di gestione delle code (dequeue, enqueue ecc.) devono utilizzare le funzioni di gestione degli stack indipendentemente da come sono implementati gli stack.

Discutere sulle eventuali cambiamenti di complessità di Dequeue e Enqueue in questa nuova implementazione rispetto alle implementazioni viste nella lezione precedente.

Domanda: Quante volte ciascun elemento sarà oggetto di un Push

e di un Pop prima di lasciare la coda?

Riferimenti

Documenti correlati

3) Il pianeta Terra ruota attorno al proprio asse in 24 ore. Il raggio equatoriale terrestre è R=6370km. A) calcola la velocità tangenziale a cui ruota un punto posto

17 Ott 2003 Costruzione di Interfacce - Paolo Cignoni 2}. Sempre

- atoi: scrivere in linguaggio macchina una funzione che scriva nel registro R0 il valore intero positivo rappresentato dalla stringa ASCII presente in memoria a

Per individuare la base associata ad un vertice x è sufficiente trovare le variabili che assumono il valore zero sui vincoli la cui intersezione individua x sul piano. Si determinino

Possono essere anche prodotti molti file di dati ed un unico file di modello, per risolvere rapidamente molti problemi aventi la stessa struttura ma diversi valori numerici

7)Assegnare alla variabile num1 il valore contenuto nella variabile num2: entrambe le variabili sono già state dichiarate.E. 8)Scrivere un programma

¾ Ricerca ed eventualmente stampa della prima occorrenza nella lista di un elemento dato in input (utilizzando una funzione ricorsiva). ¾ Ricerca e stampa del massimo e del

¾ 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