Tworzenie swojej listy jednokierunkowej

0

Jako nowy na forum witam wszystkich!
Chciałem stworzyć swoją liste, lecz mam problem z kilkoma metodami, a mianowicie:

public void wstaw(Karta k) {
	int i = 0;
	Wezel tmp = poczatek;
	if(i<=rozmiar) {
		 tmp = tmp.pobierzNastepny();
		i++;}
	else{
		 tmp = tmp.pobierzNastepny();
		tmp = new Wezel(k,tmp);}

    ++rozmiar;
}

Metoda która ma wstawiać kolejny element do listy na koniec nie robi nic... Mam też do napisania metode usunjakiśtamelement, na co nie mam zbytnio pomysłu. Mógłyby ktoś wspomóc radą? :)

0

Eh..

Twó kod:

tmp = tmp.pobierzNastepny();
                tmp = new Wezel(k,tmp);

...zastępuje tylko referencję w zmiennej lokalnej tmp nową. Jeśli nie rozumiesz co przez to chcę powiedzieć, idź uczyc się Javy, bo nic tu nie zdziałasz.

Poza tym.. w obiekcie listy jednokierunkowej powinieneś trzymać link do pierwszego i ostatniego elementu.
Zakładamy, że biorąc element z tej listy, pobiera się pierwszy, a dodaje ostatni.

dodawanie wyglądałoby tak:

if(last!=null)
{
    last.ustawNastepny(nowyElement);
    last = nowyElement;
}
else
{
   // jesli last jest null, to i lista musi byc pusta, wiec...
   last = nowyElement;
   first = nowyElement;
}

Jak będzie wyglądało pobieranie i zdejmowanie pierwszego, sam wywnioskuj...

0

dzięki wielkie! jakby co to (chyba) taki kod:

public void wstaw(Karta k) {

	Wezel tmp = poczatek;
	for (int i=0;i<rozmiar;i++)
		tmp=tmp.pobierzNastepny();

	if(tmp!=null)
	{
		Wezel w = new Wezel(k,tmp);
	    tmp.ustawNastepny(w);
	    tmp = w;
	}
	else
	{
		dodajPierwszy(k);
	}


    ++rozmiar;
}

pośpieszyłem sie... dodaje ale na początku, sry ;p szkoda że nie ma opcji usuń ;p a wiesz może dlaczego teraz to cały czas jest nullem?

0
Keraj napisał(a)

Eh..
Jeśli nie rozumiesz co przez to chcę powiedzieć, idź uczyc się Javy, bo nic tu nie zdziałasz.

No @keraj, ale pojechane....

1 użytkowników online, w tym zalogowanych: 0, gości: 1