Hogyan tudok C-ben láncolt listát létrehozni?
#include <stdio.h>
typedef struct listelem {
int data; /* a tĂĄrolt adat */
struct listelem *next; /* kĂśv. elem cĂme */
} listelem;
int main(void)
{
listelem *p;
scanf_s("%d", p->data);
while (p->data != 0)
{
scanf_s("%d", p->data);
p = p->next;
}
return 0;
}
Ezzel próbálkoztam de nem működik. Nem tudom hogy vigyek be e egy head pointert ami a kezdő elemre mutat elindítva a "láncreakciót"
listelem* p = (listelem*) malloc(sizeof(listelem));
Így már működni fog, csak ne felejtsd el, hogy minden plusz elemnél foglalnod kell memóriát és kivételnél pedig törölnöd.
OFF:
A láncolt listák kifejezetten lassú adatszerkezetek, mivel nagyon sok cache miss-t generálnak. Tanulófeladatnak nagyon jók, de gyakorlatban érdemes kerülni őket.
Ökölszabály: Csak akkor használj láncolt listát, ha többször módosítod, mint ahányszor iterálod.
Én ezt már megírtam egyszer:
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!