/***************************************************************** * Ovo delo zaštićeno je licencom Creative Commons CC BY-NC-ND 4.0 * (Attribution-NonCommercial-NoDerivatives 4.0 International License). * Za detalje pogledati LICENSE.TXT * Autori: Milena Vujosevic Janicic, Jelena Graovac, Nina Radojicic, * Ana Spasic, Mirko Spasic, Andjelka Zecevic ******************************************************************/ #include #include #include "dvostruko_povezana_lista.h" int main() { /* Lista je prazna na pocetku */ Cvor *glava = NULL; Cvor *kraj = NULL; Cvor *trazeni = NULL; int broj; /* Testira se funkcija za dodavanje vrednosti u listu tako da ona bude uredjena neopadajuce */ 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 novi cvor. Memoriju alociranu za cvorove liste treba osloboditi pre napustanja programa */ if (dodaj_sortirano(&glava, &kraj, broj) == 1) { fprintf(stderr, "Greska: Neuspesna alokacija memorije za cvor.\n"); oslobodi_listu(&glava, &kraj); exit(EXIT_FAILURE); } printf("\tLista: "); ispisi_listu(glava); } /* Testira se funkcija za pretragu liste */ printf("\nUnesite broj koji se trazi u listi: "); scanf("%d", &broj); /* Pokazivac trazeni dobija vrednost rezultata pretrage */ 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); /* Testira se funkcija za brisanje elemenata iz liste */ printf("\nUnesite broj koji se brise iz liste: "); scanf("%d", &broj); /* Brisu se cvorovi liste cija vrednost je jednaka unetom broju */ obrisi_cvor_sortirane_liste(&glava, &kraj, broj); printf("Lista nakon brisanja: "); ispisi_listu(glava); /* Ispisuje se lista unazad */ printf("\nLista ispisana u nazad: "); ispisi_listu_unazad(kraj); /* Oslobadja se memorija zauzeta za cvorove liste */ oslobodi_listu(&glava, &kraj); exit(EXIT_SUCCESS); }