/* Napisati funkciju koja formira listu cifara datog broja x u dekadnom sistemu pri cemu cifru najmanje tezine treba smestiti u glavu liste. Napisati i program koji testira ovu funkciju. */ #include #include typedef struct cvor { int broj; struct cvor *sledeci; }CVOR; CVOR *napravi_cvor(int br) { CVOR *novi = malloc(sizeof(CVOR)); if (novi == NULL) { fprintf(stderr,"Neuspela alokacija.\n"); exit(1); } novi->broj = br; return novi; void dodaj_na_kraj(CVOR **p, int br) { CVOR *novi = napravi_cvor(br); novi->sledeci = NULL; // Slucaj kada je lista prazna if (*p == NULL) *p = novi; // Slucaj kada lista vec ima elemenata else { // Posto sa *p menjamo pokazivac na glavu liste (a // to nam nije cilj kada dodajemo na kraj liste), // deklarisemo pomocni pokazivac koji ce nam sluziti // za nalazenje kraja liste. CVOR *pom = *p; // Nalazimo kraj liste *p. while (pom->sledeci != NULL) pom = pom->sledeci; // Dodajemo novi element na kraj. pom->sledeci = novi; } } void ispisi_listu(CVOR *pocetak) { CVOR *t; for (t=pocetak; t!=NULL; t = t->sledeci) printf("%d ",t->broj); printf("\n"); } main() { CVOR *pocetak=NULL; int i,x,cifra; scanf("%d",&x); while(x) { cifra=x%10; pocetak=dodaj_na_kraj(pocetak,cifra); x=x/10; } ispisi_listu(pocetak); }