Newsgroup: it.comp.programmare
Titolo: Semplice coda implementata con lista e info su libro

Salve,
sapreste dirmi come estarre in maniera FIFO gli elementi di una lista? Ho
scritto il seguente codice che estrae in maniera LIFO l'ho anche commentato
se potete confermate o correggente quanto scritto da me:
#include <iostream>
// Cella che contiene i campi indirizzo e valore
struct Cella {
 int dato;
 Cella* prev;
};
/* Il puntatore first servira' per scorrere (inserire ed estrarre) gli
elementi; temp fara'
da cella temporanea. Infatti viene creata una nuova cella, assegnato il
valore del dato, collegata (ovvero prende l'indirizzo) ad una cella (temp) e
il contenuto della vecchia cella (first) viene spostata in temp */
Cella *first, *temp;
int main () {
 // Inserimento dei valori
 for (int i = 0; i < 5; i++) {
  first = new Cella();
  first->dato = i;
  first->prev = temp;
  temp = first;
 };
 // Estrazione in modalita' LIFO (pila)
 while (first != 0) { // Mentre esistono ancora elementi
  temp = first; // Assegno il valore a temp in modo da poterlo cancellare
(se cancellassi                 // first non potrei piu scorrere la pila)
  std::cout << first->dato << std::endl;
  first = first->prev; // Scorro la pila all'indietro
  delete temp; // Libero la memoria occupata dalla cella precedente (ovvero
first
               // prima dell'istruzione first = first->prev)
 };
return 0;
}
Per quanto rigurda l'estrazione in modalita' FIFO ho pensato di tornare
indientro con la lista ma non mi pare una buona idea... diventa troppo poco
efficiente per grosse quantita' di elementi:
 // Estrazione in modalita' FIFO (coda)
 while (first != 0)
  first = first->prev;
E in ogni caso non so come implementarla. Forse non va bene la struttura
Cella con campo dato e campo puntatore?
Che libri in italiano mi consigliate per studiare in maniera chiara e
"completa" gli algoritmi e le strutture dati, magari con supporto
teorico/matematico?
I testi di Sedgwick forse sono i migliori tra quelli ITA... ma l'ultima
edizione mi sa che sia composta da 3 o 5 volumi :-/
Mi hanno sempre parlato bene di "Algoritmi + strutture dati = programmi" di
Wirth ma e' un testo vecchio e non son mai riuscito a trovarlo. Se qualcuno
lo vende potrebbe interessarmi (ma prima vedo se risolvo meglio con qualche
testo di Sedgewick).
Grazie

 testo di Sedgewick).
Su Algoritmi in C++ di Sedgewick c'e' questa breve recensione:
Il testo offre una copertura attuale e completa dei principali algoritmi e
strutture dati, con spiegazioni dettagliate. Sebbene la sostanza del libro
si possa applicare alla programmazione in qualsiasi linguaggio, gli esempi
creati da Christopher Van Wyk, docente alla Drew University e consulente dei
Bell Laboratories, sfruttano le naturali connessioni tra le classi C++ e le
implementazioni ADT. Il sito web di riferimento offre un’ampia gamma di
materiali di supporto.
****************************************************************************
******************
Non vorrei che desse meno importanza all'implemententazione di strutture
dati per analizzare le strutture dati offerti dalla STL...
Forse meglio Algoritmi in C?
Grazie

 Forse meglio Algoritmi in C?
Ti consiglio il primo.