[[oktatas:programozás:c|< C nyelv]] ====== Láncolt lista C nyelven ====== * **Szerző:** Sallai András * Copyright (c) Sallai András, 2011, 2014 * Licenc: GNU Free Documentation License 1.3 * Web: http://szit.hu ===== Példa ===== /* Sallai András (c) 2002. */ #include #include #include struct tmutato { char *adat; struct tmutato *kovetkezo; }; main() { struct tmutato *elso, *aktualis, *uj; char *szam; elso = NULL; printf("Írj be szöveget 0 végjelig: \n"); szam = (char *) malloc(30 * sizeof(char)); scanf("%s", szam); while(!(strchr(szam, '0'))) { uj = (struct tmutato *) malloc(sizeof(struct tmutato)); uj->adat = (char *) malloc(30 * sizeof(char)); strcpy(uj->adat, szam); uj->kovetkezo = NULL; if(elso == NULL) elso = uj; else aktualis->kovetkezo = uj; aktualis = uj; scanf("%s", szam); } aktualis = elso; while(aktualis != NULL) { printf("Adat: %s\n", aktualis->adat); aktualis = aktualis->kovetkezo; } } ===== Láncolt lista függvényekkel ===== #include #include struct elem { int adat; struct elem *kovetkezo; }; typedef struct elem t_elem; t_elem * beker() { t_elem *elso, *aktualis, *uj; int szam = 0; do { printf("Szam: "); scanf("%d", &szam); if(szam != 0) { uj = (t_elem *) malloc(sizeof(t_elem)); uj->adat = szam; uj->kovetkezo = NULL; if(elso == NULL) elso = uj; else aktualis->kovetkezo = uj; aktualis = uj; } }while(szam != 0); aktualis = elso; return aktualis; } void kiir(t_elem *aktualis) { while(aktualis != NULL) { printf("Elemek: %d\n", aktualis->adat); aktualis = aktualis->kovetkezo; } } int main(int argc, char **argv) { t_elem *aktualis = beker(); kiir(aktualis); return 0; }