Advertisement
Guest User

dsa

a guest
Nov 21st, 2018
95
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.25 KB | None | 0 0
  1.  
  2. #include <iostream>
  3. #include <ctime>
  4. #include <cstdlib>
  5. using namespace std;
  6.  
  7. struct element{
  8.     int broj;
  9.     element *sljedeci;
  10. };
  11.  
  12. int generirajBroj(int polje[]){
  13.     int broj = rand() % 21;//broj izme▒^▒u 0 i 20
  14.     polje[broj]++;
  15.     cout << "generirao se broj: " << broj << endl;
  16.     return broj;
  17. }
  18.  
  19. void unosListe(element *glava, int broj){
  20.     element *novi, *zadnji;
  21.     zadnji = glava;
  22.     while(zadnji->sljedeci){
  23.         zadnji = zadnji->sljedeci;
  24.     }
  25.     novi = new element;
  26.     novi->broj = broj;
  27.     novi->sljedeci = NULL;
  28.     zadnji->sljedeci = novi;
  29. }
  30.  
  31. void ispisListe(element *glava){
  32.     element * e = glava->sljedeci;
  33.     while(e){
  34.         cout << e->broj << " ";
  35.         e = e->sljedeci;
  36.     }
  37.     cout << endl;
  38. }
  39.  
  40. bool imaUPolju(int a, int polje[]){
  41.     for(int i=0; i<21; i++){
  42.         if(polje[i] > 1){
  43.  
  44.             return true;
  45.         }
  46.     }
  47.     return false;
  48. }
  49.  
  50. void brisi(element* glava, int polje[]){
  51.     element* e, *brisi, *prethodni;
  52.     prethodni = glava;
  53.     e = glava->sljedeci;
  54.     bool prvi = true;
  55.     while(e){
  56.         for(int i=0; i<21; i++){
  57.             if(polje[i] > 1){
  58.                 if(i == e->broj){
  59.                     if(prvi = false){
  60.                         prethodni->sljedeci = e->sljedeci;
  61.                         brisi = e;
  62.                         e = e->sljedeci;
  63.                         polje[i]--;
  64.                         delete brisi;
  65.                     }else{
  66.                         prvi = false;
  67.                     }
  68.                 }else{
  69.                     prethodni = e;
  70.                     e = e->sljedeci;
  71.                     break;
  72.                 }
  73.             }else{
  74.                 return;
  75.             }
  76.         }
  77.     }
  78. }
  79.  
  80. int main(){
  81.     int polje[21] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};//0-20 sto je 21 broj
  82.     element *glava;
  83.     glava->sljedeci = NULL;
  84.     int n;
  85.     srand(time(NULL));
  86.     cout << "Unesite n:" << endl;
  87.     cin >> n;
  88.     for(int i=0; i<n; i++){
  89.         unosListe(glava,generirajBroj(polje));
  90.     }
  91.     cout << "Orginalna lista: " << endl;
  92.     ispisListe(glava);
  93.     cout << "Bez duplikata: " << endl;
  94.     brisi(glava, polje);
  95.     ispisListe(glava);
  96.     return 0;
  97. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement