gashink_t

спэшл фо илья

May 28th, 2020
171
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.21 KB | None | 0 0
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. struct list {
  6.     int data;
  7.     list* next;
  8. };
  9.  
  10. struct st {
  11.     list* up, * down;
  12.     st* next;
  13. };
  14.  
  15. list* t1, * p1, * t2, * p2;
  16. st* s, * t, * p;
  17.  
  18. int main() {
  19.     int n=1, a, c;
  20.     cout << "Enter a list item\n->";
  21.     cin >> a;
  22.     if (a == 0)
  23.         cout << "list pust" << endl;
  24.     else {
  25.     /*Ввод элементов списка*/
  26.         while (a)
  27.         {
  28.             t = new st;
  29.             t->up = 0; t->next = 0; t->down = 0;
  30.             /*Заполнение верхнего спика*/
  31.             t1 = new list;
  32.             t1->next = 0;
  33.             t1->data = a;
  34.             t->up = t1;
  35.  
  36.             if (s == 0) s = t; //голова спискa
  37.  
  38.             else {
  39.                 p->next = t;
  40.                 p1->next = t1;
  41.             }
  42.             cin >> a;
  43.             n++;
  44.             if (a != 0)
  45.             {
  46.                 /*Заполнение нижнего спика*/
  47.                 t2 = new list;
  48.                 t2->next = 0;
  49.                 t2->data = a;
  50.                 t->down = t2;
  51.                 if (n != 2) p2->next = t2;
  52.                 p = t;
  53.                 p2 = t2;
  54.                 p1 = t1;
  55.                 cin >> a;
  56.             }
  57.            
  58.         }
  59.     }
  60.     p->next = s; //присваивание последнему листу в среднем списке указатель на голову списка
  61.     /*Ввод управления*/
  62.     cout << "Where to go? up(1), down(2), next(3), the end(0)\n->";
  63.     cin >> c;
  64.     p1 = 0; p2 = 0; p = s; n = 0;
  65.     while (c != 0) {
  66.         switch (c) {
  67.         case 1:
  68.             if (n == 0) {
  69.                 if (p->up != 0) {
  70.                     cout << "up\n";
  71.                     p1 = p->up;
  72.                 }
  73.                 else cout << "Up is empty\n";
  74.                 n = 1;
  75.             }
  76.             else cout << " No up\n";
  77.             break;
  78.         case 2:
  79.             if (n == 0)
  80.             {
  81.                 if (p->down != 0)
  82.                 {
  83.                     cout << "down\n";
  84.                     p2 = p->down;
  85.                 }
  86.                 else cout << "Down is empty\n";
  87.                 n = 2;
  88.             }
  89.             else
  90.                 cout << " No Down\n";
  91.             break;
  92.         case 3:
  93.             if (n == 0) {
  94.                 if (p != 0) {
  95.                     cout << "next\n";
  96.                     p = p->next;
  97.                 }
  98.                 else cout << "Next is empty\n";
  99.             }
  100.             if (n == 1) {
  101.                 if (p1 != 0) {
  102.                     cout << p1->data << endl;
  103.                     p1 = p1->next;
  104.                 }
  105.                 else cout << "Next is empty\n";
  106.             }
  107.             if (n == 2) {
  108.                 if (p2 != 0) {
  109.                     cout << p2->data << endl;
  110.                     p2 = p2->next;
  111.                 }
  112.                 else cout << "Next is empty\n";
  113.             }
  114.             break;
  115.         }
  116.         cout << "->";
  117.         cin >> c;
  118.     }
  119.     cout << "The program has finished working" << endl;
  120.     return 0;
  121. }
Add Comment
Please, Sign In to add comment