Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- main.c
- #include <stdio.h>
- #include <stdlib.h>
- #include "def1.c"
- int main()
- {
- int izbor, pravilan_unos;
- TOsoba *glava_liste = NULL;
- do
- {
- do{
- printf("1. Unos na pocetak liste\n");
- printf("2. Unos na kraj liste\n");
- printf("3. Pregled sadrzaja elemenata cvorova liste\n");
- printf("4. Brisanje svih cvorova liste liste\n");
- printf("5. Brisanje cvorova liste po kriterijumu liste\n");
- printf("6. Izlaz liste\n");
- printf("Vas izbora: \n");
- if (scanf("%d", &izbor) == 0)
- {
- printf("Niste unijeli cjelobrojnu vrijednost\n");
- pravilan_unos = 0;
- while (getchar()!='\n');
- }
- else
- {
- if(izbor >= 1 && izbor <= 6)
- {
- pravilan_unos = 1;
- getchar();
- }
- else
- {
- printf("Unijeli ste cjelobrojnu vrijednost koja nije u nizu");
- pravilan_unos = 0;
- }
- }
- }
- while(pravilan_unos == 0);
- if (izbor == 1)
- glava_liste = unos_na_pocetak(glava_liste);
- else if (izbor == 2)
- glava_liste = unos_na_kraj(glava_liste);
- else if (izbor == 3)
- pregled(glava_liste);
- else if (izbor == 4)
- glava_liste = brisi_sve(glava_liste);
- else if (izbor == 5)
- glava_liste = brisi_po_krit(glava_liste);
- else if (izbor == 6)
- return 0;
- }
- while (1);
- return 0;
- }
- --- def1.c
- #include <stdio.h>
- #include <stdlib.h>
- typedef struct osoba
- {
- char prezime[20];
- int starost;
- struct osoba *sledeca;
- }TOsoba;
- --- unosp.c
- #include <stdio.h>
- #include <stdlib.h>
- #include "def1.c"
- TOsoba *unos_na_pocetak(TOsoba *glava)
- {
- TOsoba *nova;
- nova = malloc(sizeof(TOsoba)); // rezervise u memoriji mjesto koje nam je potrebno za osobu i vraca pocetnu adresu u promjenljivu nova
- printf("Novi cvor pocinje na adresi %d \n", &nova);
- printf("Unesite prezime i ime osobe \n");
- gets( nova->prezime );
- printf("Unesite starost osobe \n");
- scanf("%d", &nova -> starost);
- nova -> sledeca = NULL;
- nova -> sledeca = glava;
- glava = nova;
- return glava;
- }
- ---pregled1.com
- #include <stdio.h>
- #include <stdlib.h>
- #include "def1.c"
- void pregled(TOsoba *glava)
- {
- while (glava)
- {
- printf("%p %s %d %p\n", glava, glava -> prezime, glava -> starost, glava -> sledeca);
- glava = glava -> sledeca;
- }
- }
- ---unosk.c
- #include <stdio.h>
- #include <stdlib.h>
- #include "def1.c"
- TOsoba *unos_na_kraj(TOsoba *glava)
- {
- TOsoba *nova;
- nova = malloc(sizeof(TOsoba)); // rezervise u memoriji mjesto koje nam je potrebno za osobu i vraca pocetnu adresu u promjenljivu nova
- printf("Novi cvor pocinje na adresi %p \n", nova);
- printf("Unesite prezime i ime osobe \n");
- gets( nova->prezime );
- printf("Unesite starost osobe \n");
- scanf("%d", &nova -> starost);
- nova -> sledeca = NULL;
- if (glava == NULL)
- {
- glava = nova;
- }
- else
- {
- TOsoba *nadji_zadnji = glava;
- while (nadji_zadnji -> sledeca != NULL)
- nadji_zadnji = nadji_zadnji -> sledeca;
- nadji_zadnji -> sledeca = nova;
- }
- return glava;
- }
- --- brisi1.c
- #include <stdio.h>
- #include <stdlib.h>
- #include "def1.c"
- void *brisi_sve(TOsoba *glava)
- {
- while (glava)
- {
- TOsoba *za_brisanje = glava;
- printf("Sad briesm: %p %s %d %p\n", glava, glava -> prezime, glava -> starost, glava -> sledeca);
- glava = glava -> sledeca;
- free(za_brisanje);
- }
- return glava; //return NULL;
- }
- --- brisikrit.c
- #include <stdio.h>
- #include <stdlib.h>
- #include "def1.c"
- void *brisi_po_krit(TOsoba *glava)
- {
- int godina;
- TOsoba *tekuca = glava, *za_brisanje = NULL, *pret = NULL;
- printf("Koliko godina imaju osobe koje treba izbrisati iz liste: \n");
- scanf("%d", &godina);
- while(tekuca)
- {
- if(tekuca -> starost == godina)
- {
- za_brisanje = tekuca;
- tekuca = tekuca -> sledeca;
- if (pret == NULL)
- glava = tekuca;
- else
- pret -> sledeca = tekuca;
- free(za_brisanje);
- return glava;
- }
- else
- {
- pret = tekuca;
- tekuca = tekuca -> sledeca;
- }
- }
- return glava;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement