Facebook
From Mustard Ostrich, 9 Years ago, written in Plain Text.
Embed
Download Paste or View Raw
Hits: 772
  1. #include <iostream>
  2. #include<cstdlib>
  3.  
  4. using namespace std;
  5.  
  6. class kulka{
  7. public:
  8.     int value;
  9.     kulka *next;
  10.     void add(kulka*, kulka *first);
  11.     kulka(): value(rand()%101),next(NULL){}
  12.     kulka(int wartosc):value(wartosc),next(NULL){}
  13.     void display(kulka *first);
  14.  
  15. };
  16.  
  17. void kulka::add(kulka *new_kulka, kulka *first)
  18. {
  19.     if(next != first)
  20.     {
  21.         if(new_kulka->value < next->value)
  22.         {
  23.             new_kulka->next = next;
  24.             next = new_kulka;
  25.             return;
  26.         }
  27.         else
  28.         {
  29.             next->add(new_kulka, first);
  30.         }
  31.     }
  32. }
  33. /*
  34. void kulka :: display(kulka *first) ///nierekurencyjnie
  35. {
  36.         kulka *temp = this;
  37.         int i = 1;
  38.         while(temp->next != first)
  39.         {
  40.                 cout << "Wartosc elementu " << i << " listy: " << temp->value << endl;
  41.                 i++;
  42.                 temp = temp->next;
  43.         }
  44. }
  45. */
  46.  
  47. void kulka :: display(kulka *first) ///rekurencyjnie
  48. {
  49.     cout << value << endl;
  50.     if(next == first)
  51.     {
  52.         return;
  53.     }
  54.     else
  55.     {
  56.         next->display(first);
  57.     }
  58. }
  59. int main()
  60. {
  61.     kulka* first = new kulka(1);
  62.     for(int i=1; i < 30; i++)
  63.     {
  64.         kulka *new_kulka = new kulka(rand()%100);
  65.         first->add(new_kulka,first);
  66.     }
  67.     first->display(first);
  68. }