Advertisement
Guest User

Untitled

a guest
Dec 10th, 2018
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 3.78 KB | None | 0 0
  1. #include <stdlib.h>
  2. #include <stdio.h>
  3. #include <string.h>
  4. #include <stdbool.h>
  5.  
  6. typedef struct slowo{
  7.     char wyraz[100];
  8.     struct slowo *next;
  9. }sslowo;
  10.  
  11. void dodaj(sslowo **lista,sslowo *nowe){
  12. nowe->next=NULL;
  13. if(*(lista)==NULL){
  14.     *lista=nowe;
  15. }
  16. else{
  17.     sslowo *wsk=*lista;
  18.     while(wsk->next!=NULL){
  19.         wsk=wsk->next;
  20.  
  21.     }
  22.     wsk->next=nowe;
  23. }
  24. }
  25. void dodajSlowo(char wyraz[100],sslowo **lista){
  26.     sslowo* nowe=(sslowo*)malloc(sizeof(sslowo));
  27.     strcpy(nowe->wyraz,wyraz);
  28.  
  29.     dodaj(lista,nowe);
  30.  
  31. }
  32.  
  33. void drukuj(sslowo* lista){
  34.     sslowo* wsk=lista;
  35.  
  36.     if(lista==NULL){
  37.         printf("Lista jest pusta");
  38.     }else{
  39.         printf("Elementy listy\n");
  40.         while(wsk!=NULL){
  41.             printf("%s\n",wsk->wyraz);
  42.             wsk=wsk->next;
  43.         }
  44.     }
  45. }
  46. void szukaj(char wyraz[100],sslowo *lista){
  47.     sslowo *szukaneSlowo=malloc(sizeof(sslowo));
  48. sslowo *slo=lista;
  49. printf("Zaczynam szukac\n");
  50. while(slo!=NULL){
  51.     if(strcmp(slo->wyraz,wyraz)==0){
  52.         szukaneSlowo=slo;
  53.         printf("Znaleziono %s \n",slo->wyraz);
  54.     }
  55.     slo=slo->next;
  56. }
  57. printf("Koniec szukania\n");
  58. }
  59. int usun(char wyraz[100],sslowo **lista){
  60.     sslowo* poprzedni=NULL;
  61.     sslowo* wsk=*lista;
  62.     while((wsk!=NULL) && (strcmp(wsk->wyraz,wyraz)!=0) ){
  63.         poprzedni=wsk;
  64.         wsk=wsk->next;
  65.     }
  66.     if(wsk==NULL){
  67.         return 0;
  68.     }
  69.     else{
  70.         if(poprzedni==NULL){
  71.             (*lista)=(*lista)->next;
  72.             free(wsk);
  73.         }else{
  74.             poprzedni->next=wsk->next;
  75.             free(wsk);
  76.         }
  77.         return 1;
  78.     }
  79.  
  80. }
  81. int dlugosc_listy(sslowo *lista){
  82.     int d=0;
  83.     sslowo* wsk=lista;
  84.     while(wsk!=NULL){
  85.         d++;
  86.         wsk=wsk->next;
  87.     }
  88.     return d;
  89. }
  90. void kasuj(sslowo **lista){
  91.     sslowo* wsk=*lista;
  92.     sslowo* poprzedni=NULL;
  93.  while((wsk!=NULL)){
  94.         poprzedni=wsk;
  95.         wsk=wsk->next;
  96.         //free(poprzedni);
  97.         poprzedni->next=NULL;
  98.     }
  99. }
  100.  
  101. void bezPowtorzen(sslowo **lista){
  102.     sslowo* wsk=*lista;
  103.     sslowo *lista1=NULL;
  104.     sslowo *kopia=malloc(sizeof(sslowo));
  105.      sslowo *kopia1=malloc(sizeof(sslowo));
  106.     sslowo *odnowa=malloc(sizeof(sslowo));
  107.    
  108.    
  109.     int a=0;
  110.     bool jest=false;
  111.     while(kopia!=NULL && kopia->next!=NULL){
  112.         kopia1=kopia;
  113.        
  114.         while(kopia1->next!=NULL){
  115.             if(strcmp(kopia->wyraz,kopia1->next->wyraz)==0){
  116.                 odnowa=kopia1->next;
  117.                 kopia1->next=kopia1->next->next;
  118.                 //dodajSlowo(kopia->wyraz,&lista1);
  119.                 //usun(odnowa->wyraz,kopia1);
  120.             }else{
  121.                 kopia1=kopia1->next;
  122.             }
  123.            
  124.         }
  125.        
  126.        
  127.         kopia=kopia->next;
  128.     }
  129.     printf("test");
  130.    drukuj(kopia);
  131. }
  132.  
  133. sslowo SCALAJ(sslowo *wejsciowa1, sslowo *wejsciowa2){
  134. sslowo *lista3=NULL;
  135. sslowo *ptr1=wejsciowa1;
  136. sslowo *ptr2=wejsciowa2;
  137. sslowo *ptrwyjsc;
  138. sslowo *tmp=malloc(sizeof(sslowo));
  139. sslowo *tmp2=malloc(sizeof(sslowo));
  140. if(ptr1==NULL){
  141.     lista3=ptr2;
  142. }
  143. if(ptr2==NULL){
  144.     lista3=ptr1;
  145. }
  146. if(ptr1!=NULL && ptr2!=NULL){
  147.         while(ptr1!=NULL){
  148.         dodajSlowo(ptr1->wyraz,&lista3);
  149.         ptr1=ptr1->next;
  150.         }
  151.         while(ptr2!=NULL){
  152.         dodajSlowo(ptr2->wyraz,&lista3);
  153.         ptr2=ptr2->next;
  154.         }
  155. }
  156. return *lista3;
  157. }
  158.  
  159.  
  160.  
  161. int main(void){
  162.     sslowo *lista=NULL;
  163.     dodajSlowo("cos",&lista);
  164.     dodajSlowo("cs",&lista);
  165.     drukuj(lista);
  166.     szukaj("cs",lista);
  167.     usun("cos",&lista);
  168.     dodajSlowo("ss",&lista);
  169.     //kasuj(&lista);
  170.     drukuj(lista);
  171.     sslowo *lista1=NULL;
  172.     sslowo *scal=malloc(sizeof(sslowo));
  173.    
  174.    
  175.     //dodajSlowo("sis",&lista1);
  176.     *scal=SCALAJ(lista,lista1);
  177.     drukuj(scal);
  178.    
  179.  
  180. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement