Witam, mam problem z usunięciem pierwszego elementu w liście, pozostałe usuwają się bez problemu, jak mogę to naprawić?
Co do pętli while - zakładamy że zawsze element który chcemy usunąć znajduje się na liście.
class samochod
{
private String marka_samochodu;
private samochod next;
public samochod()
{
marka_samochodu = null;
next = null;
}
public samochod (String marka_samochodu, samochod next)
{
this.marka_samochodu = marka_samochodu;
this.next = next;
}
public samochod pobierz_nastepny()
{
return next;
}
public void ustaw_nastepny(samochod next)
{
this.next = next;
}
public String pobierz_marka_samochodu()
{
return marka_samochodu;
}
}
class lista
{
private samochod poczatek;
private samochod koniec;
public lista ()
{
poczatek = null;
koniec= null;
}
public boolean czyPusta()
{
return (poczatek == null);
}
public void wstaw (String s)
{
samochod nowy_samochod = new samochod (s, null);
if (czyPusta())
{
poczatek = nowy_samochod;
}
else
{
koniec.ustaw_nastepny(nowy_samochod);
}
koniec = nowy_samochod;
}
public void usun (String s)
{
samochod pomoc = poczatek;
int j=0;
while (j==0)
{
if (pomoc.pobierz_nastepny().pobierz_marka_samochodu().equals(s))
{
pomoc.ustaw_nastepny(pomoc.pobierz_nastepny().pobierz_nastepny());
j=1;
}
pomoc = pomoc.pobierz_nastepny();
}
}
public void wyswietl()
{
samochod pomoc = poczatek;
while (pomoc != null)
{
System.out.print(pomoc.pobierz_marka_samochodu() + " ");
pomoc = pomoc.pobierz_nastepny();
}
}
}
class mainn
{
public static void main(String[] args)
{
lista lista1 = new lista();
lista1.wstaw("Audi");
lista1.wstaw("Opel");
lista1.wstaw("Mercedes");
lista1.wstaw("Fiat");
lista1.wstaw("Ford");
lista1.wyswietl();
System.out.println();
//lista1.usun("Audi");
lista1.usun("Fiat");
lista1.usun("Ford");
lista1.wyswietl();
}
}