jncrusher

Untitled

Mar 26th, 2012
112
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.08 KB | None | 0 0
  1. #include<stdio.h>
  2. #include<stdlib.h>
  3. #include<string.h>
  4.  
  5. struct slowo{
  6.     char slowo[60];
  7.     struct slowo *poprz;
  8.     struct slowo *nast;
  9. };
  10.  
  11. struct slowo *wsk;
  12. struct slowo *glowa=NULL;
  13. struct slowo *nowy;
  14. FILE *stream;
  15.  
  16. void dodajnowy(void){
  17.     nowy=malloc(sizeof(struct slowo));
  18.     fscanf(stream, "%s", nowy->slowo);
  19.     printf("%s\n", nowy->slowo);
  20.     if(strcmp(nowy->slowo,glowa->slowo)<0){
  21.         nowy->nast=glowa;
  22.         nowy->poprz=NULL;
  23.         glowa->poprz=nowy;
  24.         glowa=nowy;
  25.         return;
  26.     }
  27.     else{
  28.         wsk=glowa;
  29.         while(wsk->nast!=NULL){
  30.             wsk=wsk->nast;
  31.             if(strcmp(nowy->slowo,wsk->slowo)<0){
  32.                 nowy->nast=wsk;
  33.                 wsk->poprz->nast=nowy;
  34.                 nowy->poprz=wsk->poprz;
  35.                 wsk->poprz=nowy;
  36.                 return;
  37.             }
  38.         }
  39.     }
  40.     if(wsk->nast==NULL){
  41.         nowy->nast=NULL;
  42.         nowy->poprz=wsk;
  43.         wsk->nast=nowy;
  44.     }
  45.     return;
  46. }
  47.  
  48. void wczytajdane(void)
  49. {
  50.     if((stream=fopen("slowa.txt","r"))==NULL){
  51.                 printf("Nie mozna otworzyc pliku.\n");
  52.                 exit(0);
  53.         }
  54.     while(!feof(stream)){
  55.         if(glowa==NULL){
  56.             glowa=wsk=malloc(sizeof(struct slowo));
  57.             glowa->poprz=NULL;
  58.             fscanf(stream, "%s", wsk->slowo);
  59.             printf("%s\n", wsk->slowo);
  60.             glowa->nast=NULL;
  61.         }
  62.         dodajnowy();
  63.         }
  64.         fclose(stream);
  65. }
  66.  
  67. void wypiszodpoczatku(void)
  68. {
  69.     printf("**************************\nulozone:\n");
  70.         wsk=glowa;
  71.         while(wsk->nast!=NULL)
  72.         {
  73.             printf("%s\n", wsk->slowo);
  74.             wsk=wsk->nast;
  75.         }
  76.         printf("%s\n", wsk->slowo);
  77. }
  78.  
  79.  
  80. main()
  81. {
  82.     wczytajdane();
  83.     wypiszodpoczatku();
  84.     wsk=glowa;
  85.     struct slowo *pomoc;
  86.     while(glowa->nast!=NULL){
  87.         while(wsk->nast!=NULL){
  88.             pomoc=wsk;
  89.             wsk=wsk->nast;
  90.         }
  91.         pomoc->nast=NULL;
  92.         free(wsk);
  93.         wsk=glowa;
  94.     }
  95.     free(glowa);
  96.     return 0;
  97. }
Advertisement
Add Comment
Please, Sign In to add comment