main() { CVOR* l = NULL; int i; for (i = 0; i<10; i++) ubaci_na_pocetak(&l, i); ispisi_listu(l); putchar('\n'); oslobodi_listu(l); }
int main() { /* Lista je prazna na pocetku */ Cvor *glava = NULL; Cvor *trazeni = NULL; int broj; /* Testiranje funkcije za dodavanja novog broja na pocetak liste */ printf("Unesite brojeve (CTRL+D za kraj unosa): "); while (scanf("%d", &broj) > 0) { /* Ako je funkcija vratila 1, onda je bilo greske pri alokaciji memorije za nov cvor. Memoriju alociranu za cvorove liste treba osloboditi pre napustanja programa. */ if (dodaj_na_pocetak_liste(&glava, broj) == 1) { fprintf(stderr, "Greska: Neuspesna alokacija memorije za cvor.\n"); oslobodi_listu(&glava); exit(EXIT_FAILURE); } printf("\tLista: "); ispisi_listu(glava); } /* Testiranje funkcije za pretragu liste */ printf("\nUnesite broj koji se trazi: "); scanf("%d", &broj); trazeni = pretrazi_listu(glava, broj); if (trazeni == NULL) printf("Broj %d se ne nalazi u listi!\n", broj); else printf("Trazeni broj %d je u listi!\n", trazeni->vrednost); /* Oslobadja se memorija zauzeta listom */ oslobodi_listu(&glava); exit(EXIT_SUCCESS); }
int main(int argc, char **argv) { /* Proverava se da li je program pozvan sa ispravnim brojem argumenata komandne linije. */ if (argc != 2) { fprintf(stderr, "Greska: Program se poziva sa: ./a.out datoteka.html\n"); exit(EXIT_FAILURE); } /* Priprema datoteke za citanje */ FILE *in = NULL; in = fopen(argv[1], "r"); if (in == NULL) { fprintf(stderr, "Greska: Neuspesno otvaranje datoteke %s!\n", argv[1]); exit(EXIT_FAILURE); } char c; int i = 0; char procitana[MAX_DUZINA]; Cvor *glava = NULL; Cvor *trazeni = NULL; /* Cita se datoteka, karakter po karakter, dok se ne procita karakter za kraj sadrzaja datoteke. */ while ((c = fgetc(in)) != EOF) { /* Proverava se da li se pocinje sa citanjem nove etikete */ if (c == '<') { /* Proverava se da li se cita zatvarajuca etiketa */ if ((c = fgetc(in)) == '/') { i = 0; while ((c = fgetc(in)) != '>') procitana[i++] = c; } /* Cita se otvarajuca etiketa */ else { i = 0; procitana[i++] = c; while ((c = fgetc(in)) != ' ' && c != '>') procitana[i++] = c; } procitana[i] = '\0'; /* Trazi se procitana etiketa medju postojecim cvorovima liste. Ako ne postoji, dodaje se novi cvor za ucitanu etiketu sa brojem pojavljivanja 1. Inace se uvecava broj pojavljivanja etikete. */ trazeni = pretrazi_listu(glava, procitana); if (trazeni == NULL) { if (dodaj_na_pocetak_liste(&glava, 1, procitana) == 1) { fprintf(stderr, "Greska: Neuspesna alokacija memorije za nov cvor\n"); oslobodi_listu(&glava); exit(EXIT_FAILURE); } } else trazeni->broj_pojavljivanja++; } } /* Zatvara se datoteka */ fclose(in); /* Ispisuje se sadrzaj cvorova liste */ ispisi_listu(glava); /* Oslobadja se memorija zauzeta listom */ oslobodi_listu(&glava); exit(EXIT_SUCCESS); }