Convertire una pila (LIFO) in una coda (FIFO)
Buonasera a tutti,
Ho a disposizione un frammento di memoria, all'interno del quale posso salvare dati nella forma di una pila, di tipo Last In, First Out, ovvero l'ultimo elemento inserito nella pila, è quello che viene estratto per primo.
A me servirebbe convertire questo tipo di stack in una coda, ovvero in una First In, First Out, in modo che, ad ogni operazione di "pop" dallo stesso stack, mi restituisca non l'ultimo valore inserito, ma il primo.
Sapete se esiste qualche algoritmo collaudato, oppure qualche libreria open che fa questo genere di trasformazione?
L'unico metodo che mi viene in mente è di usare un iteratore che tenga costantemente traccia del numero e della posizione di tutti gli elementi, in modo da poter raggiungere sia top che bottom della mia pila, e poter estrarre il primo valore, ma mi sembra un metodo un po' contorto, magari esiste qualche sistema più ottimizzato.
Vi ringrazio.
Un saluto
Ho a disposizione un frammento di memoria, all'interno del quale posso salvare dati nella forma di una pila, di tipo Last In, First Out, ovvero l'ultimo elemento inserito nella pila, è quello che viene estratto per primo.
A me servirebbe convertire questo tipo di stack in una coda, ovvero in una First In, First Out, in modo che, ad ogni operazione di "pop" dallo stesso stack, mi restituisca non l'ultimo valore inserito, ma il primo.
Sapete se esiste qualche algoritmo collaudato, oppure qualche libreria open che fa questo genere di trasformazione?
L'unico metodo che mi viene in mente è di usare un iteratore che tenga costantemente traccia del numero e della posizione di tutti gli elementi, in modo da poter raggiungere sia top che bottom della mia pila, e poter estrarre il primo valore, ma mi sembra un metodo un po' contorto, magari esiste qualche sistema più ottimizzato.
Vi ringrazio.
Un saluto