Kezdőoldal » Számítástechnika » Programozás » Láncolt lista két elemének...

Láncolt lista két elemének cseréje c#?

Figyelt kérdés

Megírtam az alábbi metódust (a láncolt lista osztályában van), és null referenciára fut ki a

p2 = p2.kovetkezo; sorban pedig előtte van egy if null referenciára.


public static void Csere(int index1,int index2)

{

ListaElem p = fej;

int hanyadik = 0;

while (p != null && hanyadik < index1)

{

p = p.kovetkezo;

hanyadik++;

}

if (p != null)

{

ListaElem p2 = fej;

int hanyadik2 = 0;

while (p != null && hanyadik2 < index2)

{

p2 = p2.kovetkezo;

hanyadik++;

}

if (p2 != null)

{

int seged1=0;

seged1 = p.tartalom;

p.tartalom = p2.tartalom;

p2.tartalom = seged1;



}

}

}



2018. ápr. 12. 13:49
 1/1 anonim ***** válasza:

Miért nem használod c#-ban a beépített List generikus interfacet? Abban sokkal könnyebb lenne.

Még nem igazán látom át, mit miért raktál bele, de pár észrevétel: a csere függvényed amit átvesz értékeket, azokat nem ellenőrzöd. Mi van ha én meghívom mínusz 5 és mínusz 4 értékkel?

Következő észrevétel: sokkal rövidebb és átláthatóbb kód lenne, ha a while ciklust és környezetét egy for ciklusba raknád.

Harmadik észrevétel: az utolsó while fejlécébe nem p2!=null-t akartál írni?

Egyébként meg léptesd végig debuggal az egészet soronként, és megtudod, hol kap nullt és miért.

2018. ápr. 12. 18:09
Hasznos számodra ez a válasz?

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

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!