[[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;
}