Beispiel #1
0
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);
}
Beispiel #2
0
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);
}
Beispiel #3
0
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);
}