luk_per

lista dwukierunkowa

Jan 9th, 2017
46
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.29 KB | None | 0 0
  1. #include <iostream>
  2. #include<cstdlib>
  3.  
  4. using namespace std;
  5.  
  6.  
  7.  
  8.  
  9. class Kulka
  10.  
  11. {
  12.  
  13. public:
  14.     int v;
  15.     Kulka *next=NULL;
  16.     Kulka *prv=NULL;
  17.  
  18.     Kulka()
  19.  
  20.     {
  21.         v=rand()%100;
  22.         cout<<"K: "<<v<<endl;
  23.         next=NULL;
  24.         prv=NULL;
  25.     }
  26.  
  27.     void dodaj(Kulka *nowa,Kulka *ost)
  28.     {
  29.         if (next)
  30.         {
  31.             ost=next;
  32.             next->dodaj(nowa,ost);
  33.         }
  34.         else
  35.         {
  36.             next=nowa;
  37.             nowa->prv=ost;
  38.             ost=nowa;
  39.         }
  40.     }
  41.  
  42.     void show()
  43.     {
  44.         cout<<"W: "<<v<<" ";
  45.         if(next) next->show();
  46.     }
  47.  
  48.     void marsz()
  49.     {
  50.         if(next)
  51.             next->marsz();
  52.         //cout<<endl<<"KONIEC LISTY"<<endl<<" W: "<<v<<" ";    wczesniej funkcja show2 odpala sie na kazdej kulce
  53.     if (next==NULL)        
  54.         prv->show2();
  55.     }
  56.  
  57.     void show2()
  58.     {
  59.  
  60.         cout<<"W2: "<<v<<" ";
  61.         if(prv) prv->show2();
  62.  
  63.     }
  64.  
  65. };
  66. int main()
  67. {
  68.  
  69.     Kulka *root=new Kulka();
  70.     Kulka *ost=root;
  71.     Kulka *nowa=NULL;
  72.  
  73.     for (int i=0; i<6; i++)
  74.     {
  75.         nowa=new Kulka();
  76.         root->dodaj(nowa,ost);
  77.  
  78.     }
  79.     cout<<endl<<"Lecimy po next:"<<endl;
  80.     root->show();
  81.     cout<<endl<<"Lecimy po prev:"<<endl;
  82.     root->marsz();
  83.  
  84.  
  85. }
Add Comment
Please, Sign In to add comment