Mit rontok el a következő láncolt lista forráskódjában?
Tobb elvi hiba is van a programban, ezert hogy pontosan hol kerul oda, nehez kibogozni.
Lancolt listanal kulon kell valasztani magat a Listat es a ListaElemet. Kiirni mindkettot lehet, de a listakat nem agyazzuk egymasba (legfejlebb osszefuzzuk).
A parameteres konstruktor is egy rossz gyakorlat. Jobb teljesen kulonvalasztani az inicializalast es a feltoltest.
A kiir() parameterezese is felesleges. Sosem fogsz olyat irni, hogy:
_ lista1.kiir(lista2);
_ lista1.kiir(lista1);
Nem logikus, felesleges.
A masik rossz gyakorlat a lokalis valtozo cimenek elmentese.
_ Lista ujElem(szam);
_ seged->kovekezo = &ujElem;
Az ujElem a fuggveny vegen felszabadul, ezert kerul szemet a "root"-ba (ami ugye nem a root, hanem az utolso elem).
Rekurzio helyett is erdemes itt ciklust hasznalni. A lista bejarasa nagyon szep C-ben:
_ for(ListaElem* elem = root; elem->kovetkezo != null; elem = elem->kovetkezo) { }
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!