Advertisement
Bibodui

ЯМП кп списки №2

Dec 9th, 2020
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.21 KB | None | 0 0
  1. void xXx(Node*& stack)
  2. {
  3.     Node* tmp = stack;
  4.     double average = 0, count = 0;
  5.     while (tmp != nullptr)
  6.     {
  7.         average += tmp->Value;
  8.         tmp = tmp->Next;
  9.         count++;
  10.     }
  11.  
  12.     average /= count;
  13.  
  14.     Node* tmp2 = tmp = stack;
  15.     Node* tmp3 = stack;
  16.  
  17.     while (tmp != nullptr)
  18.     {
  19.         if (tmp->Value < average)
  20.         {
  21.             if (tmp == stack)
  22.             {
  23.                 stack = stack->Next;
  24.                 tmp = stack;
  25.                 delete tmp3;
  26.             }
  27.             else if (tmp->Next == nullptr)
  28.             {
  29.                 while (tmp2->Next != tmp)
  30.                 {
  31.                     tmp2 = tmp2->Next;
  32.                 }
  33.                 tmp2->Next = nullptr;
  34.                 tmp3 = tmp;
  35.                 tmp = tmp2;
  36.                 delete tmp3;
  37.             }
  38.             else
  39.             {
  40.                 tmp2 = stack;
  41.                 while (tmp2->Next != tmp)
  42.                 {
  43.                     tmp2 = tmp2->Next;
  44.                 }
  45.  
  46.                 tmp2->Next = tmp->Next;
  47.                 tmp3 = tmp;
  48.                 tmp = tmp2->Next;
  49.                 delete tmp3;
  50.             }
  51.  
  52.         }
  53.         tmp = tmp->Next;
  54.     }
  55. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement