Ciao a tutti! Ho realizzato un piccolo programmino che gestisce una pila (l'ho implementata come struttura). Il problema è che se, dopo aver aggiunto un elemento, richiamo il metodo "pop" l'elemento risulta essere uguale a 0. Se invece aggiungo più elementi, allora salta un elemento e mi fa vedere il successivo.
ES: Inserisco 1, 2, 3, 4, 5.
La situazione della pila è HEAD ---> 5 ---> 4 ---> 3 ---> 2 ---> 1 ---> NULL.
In output ricevo (in successione): 4, 2, 0, lista vuota.
Oppure
Inserisco 1, 2, 3, 4, 5, 6.
La situazione della pila è HEAD ---> 6 ---> 5 ---> 4 ---> 3 ---> 2 ---> 1 ---> NULL.
In output ricevo (in successione): 5, 3, 1, lista vuota.
Non ho la minima idea di come possa essere possibile, visto che ho controllato e ricontrollato ed ho anche confrontato il mio codice con alcuni online.
Vi scrivo le due classi interessate:
CLASSE PILA
codice:
package struttura;
public class Pila {
private Nodo head;
public Pila() {
head = null;
}
public void push(int info) {
Nodo p = new Nodo(info);
p.setLink(head);
head = p;
}
public int pop() {
if (head == null) {
return 0;
}
int valore = head.getInfo();
head = head.getLink();
return valore;
}
}
CLASSE NODO
codice:
package struttura;
public class Nodo {
private int info;
private Nodo link;
public Nodo(int info) {
this.info = info;
link = null;
}
public void setInfo(int info) {
this.info = info;
}
public int getInfo() {
return info;
}
public void setLink(Nodo link) {
this.link = link;
}
public Nodo getLink() {
return link;
}
}
Mi affido a voi. Grazie in anticipo.