Advertisement
Gsmok

Buuble

Feb 1st, 2015
165
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.14 KB | None | 0 0
  1. ADRES sortowanie(ADRES pierwszy)
  2. {
  3. int IleEl = 0;
  4. ADRES pom = pierwszy;
  5.  
  6. while(pom)
  7. {
  8. IleEl++;
  9. pom = pom->nast;
  10. } //Liczymy ile elementów ma lista
  11.  
  12. if(IleEl == 1) //Jezeli jeden element
  13. return pierwszy; //To nie ma co go sortowac
  14.  
  15. while(IleEl>0) //Wykonujemy tyle razy ile jest elementów
  16. {
  17. pom = pierwszy;
  18.  
  19. //Porownujemy jedynie pierwsze elementy
  20. if((pierwszy->dane.KwotaNoc > pierwszy->nast->dane.KwotaNoc)||(pierwszy->dane.KwotaNoc == pierwszy->nast->dane.KwotaNoc && stricmp(pierwszy->dane.Miasto,pierwszy->nast->dane.Miast)>0)) //Dosyc zlozony warunek porownania pierwszych elementow
  21. {
  22. pierwszy->nast = pierwszy->nast->nast;
  23. pom -> nast = pierwszy;
  24. pierwszy = pom;
  25. }
  26.  
  27. //A teraz wszystkie inne
  28. while(pom->nast->nast)
  29. {
  30. if((pom->nast->dane.KwotaNoc > pom->nast->nast->dane.KwotaNoc)||(pom->nast->dane.KwotaNoc == pom->nast->nast->dane.KwotaNoc && stricmp(pom->nast->dane.Miasto,pom->nast->nast->dane.Miast)>0))
  31. {
  32. ADRES Buf = pom->nast;
  33. pom->nast = pom->nast->nast;
  34. Buf->nast = pom->nast->nast;
  35. pom->nast -> nast = Buf;
  36. }
  37. }
  38. IleEl--;
  39. }
  40. return;
  41. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement