canezzy

STUDSLUZBA

Dec 14th, 2017
142
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.81 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4.  
  5. #define BRINDEKS_SIZE 11
  6. #define IME_SIZE 21
  7. #define PREZIME_SIZE 21
  8.  
  9. typedef struct student{
  10.  
  11. char ime[IME_SIZE];
  12. char prezime[PREZIME_SIZE];
  13. char brindeks[BRINDEKS_SIZE];
  14. int godupis;
  15. struct student *next;
  16.  
  17. }TStudent;
  18.  
  19. element* unos_elem(TStudent** glava, char* ime, char* prezime, char* brindeks, int godupis, int pozicija){
  20.     if (*glava == NULL){
  21.         *glava = novi;
  22.         return;
  23.     }
  24.     if((pozicija <0) || (pozicija => broj_elem(*glava))){
  25.         return;
  26.     }
  27.  
  28.     TStudent* novi = (TStudent*)malloc(sizeof(TStudent));
  29.     novi->ime = ime;
  30.     novi->prezime = prezime;
  31.     novi->brindeks = brindeks;
  32.     novi->godupis = godupis;
  33.  
  34.     int i;
  35.     TStudent* tekuci = *glava;
  36.     TStudent* prethodni = *glava;
  37.     for (i = 0; i < pozicija; i++){
  38.         prethodni= tekuci;
  39.         tekuci = tekuci->next;
  40.     }
  41.     novi->next = tekuci;
  42.     if(tekuci == *glava){
  43.         *glava = novi;
  44.     }else{
  45.         prethodni->next = novi;
  46.     }
  47.  
  48. void prikaz_elem(TStudent* glava){
  49.     puts("PRIKAZ STUDENATA");
  50.     puts("--------------------------------------");
  51.  
  52.     if (glava == NULL){
  53.         printf("Lista je prazna! \n");
  54.         return;
  55.     }
  56.     element* tekuci = glava;
  57.     while(tekuci != NULL){
  58.         printf("Student: %s, %s, %s, %d\n",tekuci->ime, tekuci->prezime, tekuci->brindeks, tekuci->godupis);
  59.         tekuci = tekuci->next;
  60.     }
  61.     puts("-------------------------------------");
  62. }
  63.  
  64. int broj_elem(TStudent* glava){
  65.     int brojStud = 0;
  66.     while(glava){
  67.         brojStud++;
  68.         glava = glava->next;
  69.     }
  70.     return brojStud;
  71. }
  72.  
  73. void bris(TStudent** glava, char* indeks){
  74.     if (*glava == NULL){
  75.         return;
  76.     }
  77.     if ((*glava)->brindeks == idenks){
  78.         *glava = (*glava)->next;
  79.         return;
  80.     }
  81.     TStudent* prethodni = *glava;
  82.     TStudent* tekuci = *glava;
  83.     while(tekuci != NULL){
  84.         if (tekuci->brindeks == indeks){
  85.             prethodni->next = tekuci->next;
  86.             free(tekuci);
  87.             return;
  88.         }
  89.         prethodni = tekuci;
  90.         tekuci = tekuci->next;
  91.     }
  92.     printf("\n");
  93. }
  94.  
  95.  
  96. void destrukcijaListeUParKoraka(TStudent* glava){
  97.     TStudent* tek = glava;
  98.     while (glava!=NULL){
  99.         tek = glava;
  100.         glava = tek->next;
  101.         free(tek);
  102.     }
  103.  
  104. }
  105.  
  106. int main()
  107. {
  108.     TStudent* glava = NULL;
  109.  
  110.  
  111.  
  112.     prikaz_elem(glava);
  113.     unos_elem(&glava, 'o');
  114.     unos_elem(&glava, 'r');
  115.     unos_elem(&glava, 'g');
  116.     prikaz_elem(glava);
  117.     unos_elem(&glava, 'p');
  118.     unos_elem(&glava, 'd');
  119.     prikaz_elem(glava);
  120.     bris(&glava, 'o');
  121.     bris(&glava, 'p');
  122.     prikaz_elem(glava);
  123.     bris(&glava, 'd');
  124.     prikaz_elem(glava);
  125.     destrukcijaListeUParKoraka(glava);
  126.     prikaz_elem(glava);
  127.     return 0;
  128. }
Advertisement
Add Comment
Please, Sign In to add comment