Advertisement
cunha1

Untitled

Jun 21st, 2019
185
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.07 KB | None | 0 0
  1. #include <iostream>
  2. #include <cstdlib>
  3. #include <ctime>
  4. using namespace std;
  5.  
  6. struct element {
  7.     int broj;
  8.     int brojPonavljanja;
  9.     element* sljedeci;
  10. };
  11.  
  12. struct elementTip {
  13.     int broj;
  14.     int brojPonavljanja;
  15. };
  16.  
  17. int main() {
  18.     srand(time(0));
  19.     rand();
  20.     element* lista = NULL;
  21.     element* prosliElement;
  22.     int brojac=0;
  23.     bool pronaden=0;
  24.     int pseudo;
  25.     // upisati pseudoslucajne brojeve u listu
  26.     do {
  27.         pseudo = (rand() % 1000)+1;
  28.         element* trenutni = new element;
  29.         trenutni->sljedeci=NULL;
  30.         trenutni->brojPonavljanja=0;
  31.         trenutni->broj=pseudo;
  32.  
  33.         if(lista==NULL) {
  34.             lista=trenutni;
  35.             trenutni->brojPonavljanja=1;
  36.         }
  37.         else {
  38.             element* el = lista;
  39.             while(el!=NULL) {
  40.                 if(trenutni->broj == el->broj) {
  41.                     pronaden=1;
  42.                     el->brojPonavljanja++;
  43.                 }
  44.                 el=el->sljedeci;
  45.             }
  46.  
  47.             if(!pronaden) {
  48.                 prosliElement->sljedeci = trenutni;
  49.                 trenutni->brojPonavljanja=1;
  50.             }
  51.         }
  52.         if(!pronaden){
  53.             brojac++;
  54.             prosliElement = trenutni;
  55.         }
  56.         pronaden=0;
  57.     }
  58.     while(pseudo != 1000);
  59.  
  60.     // prekopirat cemo sve elemente u polje radi lakseg sortiranja
  61.     element* el = lista;  
  62.     elementTip* elementi = new elementTip[brojac];
  63.     for(int i=0;i<brojac;i++) {
  64.         elementi[i].broj = el->broj;
  65.         elementi[i].brojPonavljanja = el->brojPonavljanja;
  66.         el=el->sljedeci;
  67.     }
  68.  
  69.     // sort insertion
  70.    
  71.     for(int i=1;i<brojac;i++) {
  72.         int j=i-1;
  73.         elementTip pom = elementi[i];
  74.         while(j>=0 && elementi[j].brojPonavljanja<pom.brojPonavljanja) {
  75.             elementi[j+1] = elementi[j];
  76.             j--;
  77.         }
  78.         elementi[j+1] = pom;
  79.     }
  80.  
  81.     // ispisati sve
  82.     for(int i=0;i<brojac;i++) {
  83.         cout << elementi[i].broj << ", " << elementi[i].brojPonavljanja << endl;
  84.     }
  85.  
  86.     return 0;
  87. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement