View Full Version : [C++] Le funzioni push, pop & empty della Pila sono "standard"?
sangueimpazzito
07-09-2004, 10:11
Ciao ragazzi.
Spulciando fra gli appunti di programmazione ho trovato due diverse implementazioni della Pila:
- una che fa i controlli (che ci sia spazio o meno dentro la pila) prima di invocare le funzioni;
- una che controlla direttamente dentro le funzioni (se c'è spazio o meno).
Mi chiedevo...
Quale delle due è migliore (sempre che ce ne sia una migliore...)?!?
C'è uno standard per l'implementazione della pila?!?
Grazie a tutti.
Per implementare una pila potresti usare la classe List della Standard Template Library...
http://www.msoe.edu/eecs/ce/courseinfo/stl/list.htm
Con push_back e pop_front fai in due secondi...
Maverick82^
08-09-2004, 15:27
Stacchiamoci un pò dalle librerie ..... ;)
Potresti anche implementarla con un semplice array, ovviamente con tutti i suoi limiti.
Object[] data;
int top=-1;
Object pop() {
Object t = data[top];
data[top] = null;
top = top - 1;
return t;
}
void push(Object t) {
top = top + 1;
data[top] = t;
}
byez
Un po' bruttina per il C++ ;)
Almeno una classicina o un bel template ci vorrebbe :)
/\/\@®¢Ø
09-09-2004, 11:38
Originariamente inviato da sangueimpazzito
Ciao ragazzi.
Spulciando fra gli appunti di programmazione ho trovato due diverse implementazioni della Pila:
- una che fa i controlli (che ci sia spazio o meno dentro la pila) prima di invocare le funzioni;
- una che controlla direttamente dentro le funzioni (se c'è spazio o meno).
Mi chiedevo...
Quale delle due è migliore (sempre che ce ne sia una migliore...)?!?
In generale direi la seconda, perche' in sostanza la prima i controlli non li fa (li fa chi chiama le funzioni, non la pila ;) ) e la differenza di prestazioni nella maggior parte dei casi non vale il sacrificio.
C'è uno standard per l'implementazione della pila?!?
Direi che qualsiasi struttura dati che offra top,pop,push sia a tutti gli effetti una pila, anche se forse i due metodi piu' classici per implementarla sono l'array e la lista semplice.
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.