Newsgroup: it.comp.lang.c++
Titolo: Liste, pile e code

Salve,
postreste rispondere a queste semplici domande?
Che differenza c'č tra lista e pila? Sono entramble LIFO?
La coda invece č FIFO?
-- 
Luigi
bug windows [5] = {"95", "98", "NT", "Me", "2000"};

 La coda invece è FIFO?


 La coda invece č FIFO?
Esatto. E anche questa puņ essere implementata con una lista e opportuni
metodi di inserimento e estrazione.
EMG

 anche FIFO credo
Invece credo che sia LIFO perché in un libro ho visto che il metodo di 
inserimento ed estrazione dei dati è uguale nella lista e nella pila, 
inoltre la lista che c'è in "Panoramica sul C++" di Paolo Marotta, è LIFO. 
Tutte queste somiglianze mi hanno portato a chiedere perché esiste la pila 
e la lista e non se ne usa solo una?
Grazie


 La coda invece è FIFO?
Pila e coda fanno riferimento alla sequenza di inserimenti ed estrazioni
(rispettivamente LIFO e FIFO). In queste strutture tu hai fondamentalmente due
operazioni chiamate push e pop (e le utility tipo initialize, front (anche detta
top), size e cose simili).
Una lista invece e' una organizzazione in memoria dei dati (come anche, per
esempio, l'array o il vector). In una lista hai, in generale, le operazioni di
rimozione di un qualsiasi elemento e di inserimento di un nuovo elemento in una
qualsiasi posizione.
--
Andrea Ferro
---------
Brainbench C++ Master. Scored higher than 97% of previous takers
Scores: Overall 4.46, Conceptual 5.0, Problem-Solving 5.0
More info 
http://www.brainbench.com/transcript.jsp?pid=2522556

e la lista e non se ne usa solo una?
Sono due concetti diversi.
La pila e' una struttura descritta in termini logici di utilizzo:
tu ci metti dentro gli elementi e li tiri fuori... e questi
escono a partire dall'ultimo che ci hai messo dentro.
La lista e' una struttura descritta in termini piu' implementativi
in cui esiste il concetto di nodo e il concetto di collegamento
al nodo successivo (o ai nodi successivo e precedente nel caso di
liste doppiamente collegate).
Un modo possibile di realizzare una pila e' utilizzare una lista
semplicemente collegata (un altro sistema e' ad esempio usare un
array). Se implementare una pila con una lista sia o meno una buona
soluzione dipende dal contesto (come accade praticamente sempre):
ognuno di questi due sistemi ha pro e contro.
Ovviamente come la pila puo' essere costruita con una lista o con
altre implementazioni anche una lista puo' essere usata per
realizzare una pila o altre strutture logiche (es. una coda).
HTH
Andrea
--
Andrea Griffini, Programmer
http://www.netservers.com/~agriff

Quindi se si parla di logica (come dice Andrea G.) esiste solo la pila e la 
coda perché varia il modo di estrazione e di inserimento dei dati (come 
dice Andrea F.). Poi "all'atto pratico" io mi costruisco una lista 
scelgiendo la struttura che mi sembra più consona a risolvere il problema, 
quindi posso avere una lista LIFO oppure FIFO....
Ho detto stupidaggini?
Grazie


 Ho detto stupidaggini?
La lista e' la struttura. Puoi usarla come FIFO o come LIFO se ti limiti a
aggiungere i dati solo in testa e a leggerli solo in testa (LIFO) o coda (FIFO).
In realta' piu' che dire che fai una lista e la usi come LIFO o FIFO io direi
che se ti serve una lista fai una lista se ti serve una LIFO fai una LIFO usando
come supporto una lista o un vettore o una deque e se ti serve una FIFO fai una
FIFO usando come supporto una lista o un vettore o una deque.
