Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ///Tworzymy klasę kulka, która ma zawierać jakąś losową wartość (od 200 do 400) oraz numer
- ///oznaczający Kolejność jej powstania. Destruktor tej klasy ma wyświetlać jakiś komunikat gdy jest uruchamiany.
- ///Z tego tworzymy listę ale:
- ///-do listy mają trafiać wyłącznie te liczby, w których ilość dziesiątek nie powstarza
- ///się już w jakieś innej liczbie, która wyladowała już wcześniej na liście
- ///-losujemy tak długo aż, na liście nie znajdą się wszystkie możliwe kombinacje
- ///(21 dla tego przedziału losowania)
- ///-każda kulka, która nie pasuję do listy (ilość dziesiątek się powtarza) ma zostać
- ///zniszczona
- ///-lista ma być sortowana przy każdym dodawaniu nowej kulki
- ///Po utworzeniu lista ma zostać wyświetlona (wartości wraz z kolejnością powstawania elementów)
- ///oraz ilośc elementów na końcowej liście wraz z ilością zniszczonych kulek.
- ///Następnie z isty robimy drzewo BST, ale wg kolejności powstawania, a nie wartości w obiektach.
- ///Następnie wyświetlamy takie drzewo wraz z wartościami i kolejnością powstawania.
- ///Niszczymy drzewo/listę.
- #include<iostream>
- #include<cstdlib>
- using namespace std;
- class kulka{
- public:
- int value; ///wartosc kulki w srodku
- int numer; /// ktora w kolejnosci byla wylosowana
- kulka(int nr):value(rand()%200+200),numer(nr),next(NULL){}
- kulka *next;
- bool add(kulka*);
- void display();
- };
- bool kulka::add (kulka *new_kulka)
- {
- if( value/10 == new_kulka->value/10)
- {
- return false;
- }
- if(next != NULL)
- {
- if( new_kulka->value < next->value);
- {
- new_kulka->next=this->next;
- this->next=new_kulka;
- return true;
- }
- else
- {
- next->add(new_kulka);
- }
- }
- else
- {
- next = new_kulka;
- return true;
- }
- }
- void kulka :: count()
- {
- if(next)
- return next->count()+1;
- else
- return 1;
- }
- void kulka :: display()
- {
- cout << value << " " << numer << " " << endl;
- if(next)
- {
- next->display();
- }
- }
- int main()
- {
- kulka* first = new kulka(0);
- int i =1;
- while( i < 21)
- {
- kulka *nowa = new kulka(i);
- if (first->add(nowa)== false)
- {
- delete nowa;
- }
- else
- {
- i++;
- }
- }
- first->display();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement