Guest User

Untitled

a guest
May 21st, 2018
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 3.15 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. typedef struct cvor
  5. {
  6.     int inf;
  7.     struct cvor *sledeci;
  8. }TCVOR;
  9.  
  10. int unoselementa(TCVOR **phead,int el,int pos)
  11. {
  12.     TCVOR *temp;
  13.     TCVOR *novi;
  14.     int brojac=1;
  15.     int i;
  16.  
  17.     temp=*phead;
  18.     while(temp!=NULL)
  19.     {
  20.         brojac++;
  21.         temp=temp->sledeci; // prolaz kroz listu,ostaje nam jos da proverimo da li je pozicija validna
  22.     }
  23.  
  24.     if(pos>=1 && pos<=brojac) //uneta ok pozicija ->dozvoljen rad
  25.     {
  26.         //----------------------------------------------
  27.         //alociranje memorije za novi element,pokazivac novi je pokazivac na strukturu
  28.  
  29.         novi=(TCVOR*)malloc(sizeof(TCVOR));
  30.         //inicijalizacija novoalociranog elementa
  31.  
  32.         novi->inf=el;
  33.  
  34.         if(pos==1)
  35.         {
  36.           novi->sledeci=*phead;
  37.           *phead=novi;
  38.         }
  39.         else
  40.         {
  41.             temp=*phead;
  42.             for(i=1;i<pos-1;i++)
  43.             {
  44.                 temp=temp->sledeci;
  45.  
  46.             }
  47.             novi->sledeci=temp->sledeci;
  48.             temp->sledeci=novi;
  49.         }
  50.         return 1;
  51.     }
  52.     else
  53.     {
  54.         return 0;
  55.     }}
  56.  
  57. int brisanjeElementaListe(TCVOR **phead,int pos)
  58. {
  59.     TCVOR *temp;
  60.     TCVOR *del;
  61.     int brojac=1;
  62.     int i;
  63.  
  64.     temp=*phead;
  65.     while(temp!=NULL)
  66.     {
  67.         brojac++;
  68.         temp=temp->sledeci; // prolaz kroz listu,ostaje nam jos da proverimo da li je pozicija validna
  69.     }
  70.     if(pos>=1 && pos<=brojac) //uneta ok pozicija ->dozvoljen rad
  71.     {
  72.         if(pos==1)
  73.         {
  74.             del=*phead;
  75.             (*phead)=(*phead)->sledeci;
  76.             free(del);
  77.         }
  78.         else
  79.         {   temp=*phead;
  80.             for(i=1;i<pos-1;i++)
  81.             {
  82.                 temp=temp->sledeci;
  83.             }
  84.             del=temp->sledeci;
  85.             temp->sledeci=del->sledeci;
  86.             free(del);
  87.         }
  88.  
  89.     }
  90. return 1;
  91. }
  92.  
  93. int ispisliste(TCVOR **phead)
  94. {
  95.     int brojac=1;
  96.     TCVOR *temp;
  97.  
  98.  
  99. if(phead==NULL)
  100. {
  101.     printf("prazna lista");
  102.     return 0;
  103. }
  104.     temp=*phead;
  105.     while(temp!=NULL)
  106.     {
  107.         brojac++;
  108.         //ispis sadrzaja elemenata
  109.         printf("%d",temp->inf);
  110.         temp=temp->sledeci; // prolaz kroz listu,ostaje nam jos da proverimo da li je pozicija validna
  111.     }
  112. return 1;
  113. }
  114.  
  115. void brisanjeCeleListe(TCVOR **phead)
  116. {
  117.     while((*phead)!=NULL)
  118.     {
  119.         //brisanje elementa na prvoj poziciji
  120.        // brisanjeElementaListe(TCVOR **phead,int pos)
  121.         brisanjeElementaListe(phead,1);
  122.     }
  123.     printf("lista izbrisana");
  124. }
  125. /* void upisudatoteku(TCVOR *phead,FILE *pf)
  126. {
  127.     TCVOR *temp=phead;
  128.     int i;
  129.     int brojac=1;
  130.     if(pf!=NULL)
  131.     {
  132.       while(phead!=NULL)
  133.            {
  134.              fprintf(pf,"%d",temp->inf);
  135.            }
  136.            close(pf);
  137.     }
  138.  
  139. } */
  140.  
  141. int main()
  142. {
  143.   TCVOR *phead=NULL;
  144.   int el,pos;
  145.   unoselementa(&phead,100,1);
  146.   unoselementa(&phead,200,2);
  147.   unoselementa(&phead,300,3);
  148.   unoselementa(&phead,400,4);
  149.   unoselementa(&phead,999,3);
  150.   brisanjeElementaListe(&phead,2);
  151.   ispisliste(&phead);
  152.   brisanjeCeleListe(&phead);
  153.   ispisliste(&phead);
  154.   return 0;
  155.  
  156.   }
Add Comment
Please, Sign In to add comment