Donc j'apprends Java et je veux implémenter une liste unidirectionnelle, mais quand j'essaie de l'imprimer, ça se passe dans une boucle infinie, en imprimant seulement le premier élément, comme si temp
ne se réattribue pas. Quel est le problème ici?Java: implémenter une liste
public class Cons
{
public int stuff;
public Cons next;
public Cons(int i)
{
this(i, null);
}
public void show()
{
Cons temp = this;
while(temp != null)
{
System.out.println(temp.stuff);
temp = temp.next;
}
}
public void push(int i)
{
stuff = i;
next = this;
}
public static void main(String[] args)
{
Cons head = new Cons(2);
head.push(3);
head.push(12);
head.show();
}
}
Le code que vous avez montré ne compile pas à cause de 'this (i, null);' dans le constructeur. –
Vous n'êtes pas en train d'ajouter des éléments/nœuds à votre "liste", vous écrasez simplement le précédent à chaque fois. – Kevin