Advertisement
Proff_Ust

Лаба для Ольги(третья)

Dec 14th, 2015
95
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.78 KB | None | 0 0
  1. #include <iostream>
  2.  
  3. using namespace std;
  4. class TPointer
  5. {
  6. private:
  7.     int data;
  8.     TPointer* next;
  9.     TPointer* prev;
  10. public:
  11.     TPointer()
  12.     {
  13.         data = 0;
  14.         next = NULL;
  15.         prev = NULL;
  16.     }
  17.  
  18.     TPointer(int adData)
  19.     {
  20.         data = adData;
  21.         next = NULL;
  22.         prev = NULL;
  23.     }
  24.  
  25.     int isEmpty()
  26.     {
  27.         return (next==NULL)&&(prev==NULL)&&(data==0);
  28.     }
  29.  
  30.     void addElem(int adData)
  31.     {
  32.         TPointer* t;
  33.         if(isEmpty())
  34.             data = adData;
  35.         else
  36.         {
  37.             t = this;
  38.             while(t->next!=NULL)
  39.                 t = t->next;
  40.             t->next = new TPointer;
  41.             t->next->data = adData;
  42.             t->next->next = NULL;
  43.             t->next->prev = t;
  44.         }
  45.     }
  46.  
  47.     void printList()
  48.     {
  49.         TPointer* t = this;
  50.         while(t!=NULL)
  51.         {
  52.             cout<<t->data<<" ";
  53.             t = t->next;
  54.         }
  55.         cout<<endl;
  56.     }
  57.  
  58.  
  59.     ~TPointer()
  60.     {
  61.         TPointer* p;
  62.         TPointer* t;
  63.         t = this;
  64.         while(t)
  65.         {
  66.             p = t->next;
  67.             delete t;
  68.             t = p;
  69.         }
  70.     }
  71.  
  72. };
  73.  
  74. int main()
  75. {
  76.     setlocale(0, "RUSSIAN");
  77.     TPointer* Pointer = new TPointer;
  78.     if(Pointer->isEmpty())
  79.         cout<<"Список пуст!"<<endl;
  80.     else
  81.         cout<<"Список не пуст"<<endl;
  82.     int buff;
  83.     cout<<"Введите числа. конец ввода - 0"<<endl;
  84.     cin>>buff;
  85.     while(buff!=0)
  86.     {
  87.         Pointer->addElem(buff);
  88.         cin>>buff;
  89.     }
  90.  
  91.     Pointer->printList();
  92.     if(Pointer->isEmpty())
  93.         cout<<"Список пуст!"<<endl;
  94.     else
  95.         cout<<"Список не пуст"<<endl;
  96.     return 0;
  97. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement