Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <stdio.h>
- using namespace std;
- class Lista {
- public:
- typedef int wartosc ;
- private :
- struct element {
- wartosc wart ;
- element * nastepny ;
- element * poprzedni;
- };
- typedef element * pozycja ;
- private :
- pozycja pierwszy ;
- pozycja ostatni ;
- public:
- Lista (){
- pierwszy = NULL ;
- ostatni = NULL;
- }
- ~ Lista (){
- pozycja pom;
- while ( pierwszy != NULL ){
- pom = pierwszy ;
- pierwszy = pierwszy -> nastepny ;
- delete pom ;
- }
- }
- public:
- bool empty (){
- if ( pierwszy == NULL )
- return true ;
- else
- return false ;
- }
- int front (){
- if (empty()) return 0;
- return pierwszy -> wart ;
- }
- int back (){
- if (empty()) return 0;
- return ostatni -> wart;
- }
- void push_front (wartosc w ){
- pozycja pom =new element ;
- pom -> wart = w ;
- pom -> nastepny = pierwszy ;
- pom -> poprzedni = NULL ;
- pierwszy = pom ;
- if (pierwszy==NULL) ostatni=pierwszy;
- }
- void push_back (wartosc w ){
- if ( pierwszy == NULL )
- push_front ( w );
- else {
- pozycja it = ostatni ;
- it -> nastepny = new element;
- it = it -> nastepny;
- it -> nastepny = NULL;
- it -> poprzedni = ostatni;
- it -> wart = w;
- ostatni=it;
- }
- }
- void pop_front (){
- pozycja pom = pierwszy ;
- pierwszy = pierwszy -> nastepny ;
- pierwszy -> poprzedni = NULL;
- delete pom ;
- }
- void pop_back (){
- pozycja pom = ostatni ;
- ostatni = ostatni -> poprzedni;
- ostatni -> nastepny = NULL;
- delete pom;
- }
- void poka()
- {
- pozycja it = pierwszy ;
- while ( it != NULL ) {
- cout << it -> wart << " ";
- it = it -> nastepny ;
- }
- }
- };
- void wczytaj(int ile, Lista &pierwsza, Lista &druga)
- {
- int polowa=ile/2;
- if (ile%2!=0) polowa=(ile/2)+1;
- for (int i=1; i<=ile; i++)
- {
- if (i<=polowa) pierwsza.push_back(i);
- else druga.push_back(i);
- }
- }
- /*int main()
- {
- int n, k, u, z, p, pileczka;
- bool zdanie1=false;
- Lista lewa, prawa, upu, zm;
- scanf("%d", &n);
- scanf("%d", &k);
- scanf("%d", &u);
- for (int i=0; i<u; i++)
- {
- scanf("%d", &p);
- upu.push_back(p);
- }
- scanf("%d", &z);
- for (int i=0; i<z; i++)
- {
- scanf("%d", &p);
- zm.push_back(p);
- }
- wczytaj(n, lewa, prawa);
- for(int j=1; j<=k; j++)
- {
- if (j%2 != 0)
- {
- if (zm.front()==j)
- {
- zm.pop_front();
- if (zdanie1==false) zdanie1=true;
- else zdanie1=false;
- }
- if (!zdanie1)
- {
- pileczka=lewa.back();
- lewa.pop_back();
- }
- else if(zdanie1)
- {
- pileczka=prawa.front();
- prawa.pop_front();
- }
- }
- else
- {
- if (!zdanie1)
- {
- if (upu.front()==j) upu.pop_front();
- else prawa.push_back(pileczka);
- zdanie1=true;
- }
- else if (zdanie1)
- {
- if (upu.front()==j) upu.pop_front();
- else lewa.push_front(pileczka);
- zdanie1=false;
- }
- }
- }
- lewa.poka();
- prawa.poka();
- return 0;
- }*/
- int main()
- {
- Lista lista;
- lista.push_front(5);
- lista.push_front(6);
- lista.push_front(7);
- lista.poka();
- lista.push_back(6);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement