Advertisement
Guest User

Untitled

a guest
Jan 31st, 2015
172
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.64 KB | None | 0 0
  1. ///Tworzymy klasę kulka, która ma zawierać jakąś losową wartość (od 200 do 400) oraz numer
  2. ///oznaczający Kolejność jej powstania. Destruktor tej klasy ma wyświetlać jakiś komunikat gdy jest uruchamiany.
  3.  
  4. ///Z tego tworzymy listę ale:
  5. ///-do listy mają trafiać wyłącznie te liczby, w których ilość dziesiątek nie powstarza
  6. ///się już w jakieś innej liczbie, która wyladowała już wcześniej na liście
  7. ///-losujemy tak długo aż, na liście nie znajdą się wszystkie możliwe kombinacje
  8. ///(21 dla tego przedziału losowania)
  9. ///-każda kulka, która nie pasuję do listy (ilość dziesiątek się powtarza) ma zostać
  10. ///zniszczona
  11. ///-lista ma być sortowana przy każdym dodawaniu nowej kulki
  12.  
  13. ///Po utworzeniu lista ma zostać wyświetlona (wartości wraz z kolejnością powstawania elementów)
  14. ///oraz ilośc elementów na końcowej liście wraz z ilością zniszczonych kulek.
  15.  
  16. ///Następnie z isty robimy drzewo BST, ale wg kolejności powstawania, a nie wartości w obiektach.
  17. ///Następnie wyświetlamy takie drzewo wraz z wartościami i kolejnością powstawania.
  18.  
  19. ///Niszczymy drzewo/listę.
  20.  
  21. #include<iostream>
  22. #include<cstdlib>
  23.  
  24. using namespace std;
  25.  
  26. class kulka{
  27. public:
  28. int value; ///wartosc kulki w srodku
  29. int numer; /// ktora w kolejnosci byla wylosowana
  30. kulka(int nr):value(rand()%200+200),numer(nr),next(NULL){}
  31. kulka *next;
  32. bool add(kulka*);
  33. void display();
  34.  
  35.  
  36. };
  37. bool kulka::add (kulka *new_kulka)
  38. {
  39. if( value/10 == new_kulka->value/10)
  40. {
  41. return false;
  42. }
  43. if(next != NULL)
  44. {
  45. if( new_kulka->value < next->value);
  46. {
  47. new_kulka->next=this->next;
  48. this->next=new_kulka;
  49. return true;
  50. }
  51. else
  52. {
  53. next->add(new_kulka);
  54. }
  55. }
  56. else
  57. {
  58. next = new_kulka;
  59. return true;
  60. }
  61. }
  62. void kulka :: count()
  63. {
  64. if(next)
  65. return next->count()+1;
  66. else
  67. return 1;
  68. }
  69. void kulka :: display()
  70. {
  71. cout << value << " " << numer << " " << endl;
  72. if(next)
  73. {
  74. next->display();
  75. }
  76. }
  77.  
  78.  
  79.  
  80. int main()
  81. {
  82. kulka* first = new kulka(0);
  83. int i =1;
  84. while( i < 21)
  85. {
  86. kulka *nowa = new kulka(i);
  87. if (first->add(nowa)== false)
  88. {
  89. delete nowa;
  90. }
  91. else
  92. {
  93. i++;
  94. }
  95. }
  96. first->display();
  97. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement