Buonasera.
Ho un dubbio quando definisco l'implementazione della push di una pila.
Il dubbio è se devo aggiungere il controllo if(i==MAX), dentro la push, oppure è una cosa che si fa fuori la push(i è il numero di elementi della pila, MAX è il numero massimo che la pila può contenere).
La stesso dubbio è per il controllo i=(i<MAX)?(i+1):MAX; devo farlo qui oppure devo aggiungere un semplice i++, e il controllo va fatto fuori.
cioè, così:
bool push(Base* x){
if(i==MAX){ //QUI
return false;}
else{
Nodo*n=new Nodo;
n->a=x;
if(testa==0){
testa=n;
n->next=NULL;
i=(i<MAX)?(i+1):MAX;
}else{
n->next=testa;
testa=n;
i=(i<MAX)?(i+1):MAX; //QUI
}
return true;
}
}
Oppure questo è più corretto?
bool push(Base* x){
Nodo*n=new Nodo;
n->a=x;
if(testa==0){
testa=n;
n->next=NULL;
i=(i<MAX)?(i+1):MAX;
}else{
n->next=testa;
testa=n;
i++;
}
return true;
}
Grazie