Tartalomjegyzék

< C nyelv

Láncolt lista C nyelven

Példa

lancoltlista.c
/*
  Sallai András (c) 2002.
*/
 
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
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

lancoltLista.c
#include <stdio.h>
#include <stdlib.h>
 
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;
}