Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- struct book{
- double szerokosc_k;
- struct book* next;
- struct book* prev;
- };
- Class Shelf
- {
- book* pierwsza_ksiazka; //wskaznik na pierwszy element listy booków
- double szerokosc; // szerokosc polki, suma szer. ksiazek nie moze przekroczyc tej szerokosci
- public:
- Shelf(double w); //konstruktor z szerokoscia
- ~Shelf(); //master destroyer
- double szer_polki(); //zwraca szerokosc polki, normalnie nie ma dostepu bo private
- void wypisz(); // wypisuje po kolei szerokosci ksiazek, zaczynajac od poczatku
- int ile_ksiazek(); // zwraca ile ksiazek stoi na polce
- double laczna_szerokosc();
- double pobierz(int); //wyciaga ksiazke o podanym numerze, zsuwa resztę do kupy
- bool wstaw_koniec(double); //wstawia na koniec ksiazke, jezeli sie da
- };
- Shelf::~Shelf()
- { if(pierwsza_ksiazka)
- {
- book* obecny=pierwsza_ksiazka;
- while(obecny && obecny->next)
- {
- book* temp=obecny;
- obecny=obecny->next;
- delete temp;
- }
- delete obecny;
- }
- Shelf::Shelf(double w)
- {
- pierwsza_ksiazka=NULL;
- szerokosc=w;
- }
- bool Shelf::wstaw_koniec(double r); //dostawiam ksiazke dl. r na sam koniec
- {
- if(szerokosc-laczna_szerokosc()<r) return 0;
- if(pierwsza_ksiazka=NULL) //to pierwszą bedzie wlasnie tworzona ksiazka, zwroc 1 jako sukces
- {
- pierwsza_ksiazka->szerokosc_k=r;
- pierwsza_ksiazka->prev=NULL;
- pierwsza_ksiazka->nest=NULL;
- return 1;
- }
- new book* ksiazka;
- ksiazka->szerokosc_k=r; //tworze nowa ksiazke;
- book* obecny = pierwsza_ksiazka; //zm. pomocnicza
- while(obecny->next) obecny=obecny->next;//dochodzimy do ostatniego
- obecny->next=ksiazka; //podlaczamy nowa ksiazke na koniec
- ksiazka->prev =obecny; //itd
- ksiazka->next =NULL; //itd
- return 1; //sukces
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement