Advertisement
myloyo

вот эти списки работают точно

May 17th, 2023 (edited)
191
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.72 KB | None | 0 0
  1. #include <iostream>
  2. #include <string>
  3. #include <fstream>
  4. using namespace std;
  5.  
  6. ifstream in("input.txt");
  7. ofstream out("output.txt");
  8.  
  9. class list
  10. {
  11.     struct element
  12.     {
  13.         string inf;
  14.         element* next;
  15.         element(string x) :inf(x), next(0) {}
  16.     };
  17.     int count = 0;
  18.     element* head;
  19.     int size;
  20.     element* findx(string x)
  21.     {
  22.         element* cur = head;
  23.         for (int i = 1; i < size; i++)
  24.         {
  25.             if (cur->inf == x)
  26.             {
  27.                 return cur;
  28.             }
  29.             cur = cur->next;
  30.         }
  31.     }
  32.     element* find(int index)
  33.     {
  34.         if ((index < 0) || (index > size))
  35.         {
  36.             return nullptr;
  37.         }
  38.         else
  39.         {
  40.             element* cur = head;
  41.             for (int i = 1; i < index; i++)
  42.             {
  43.                 cur = cur->next;
  44.             }
  45.             return cur;
  46.         }
  47.     }
  48. public:
  49.     list() :head(0), size(0) {}
  50.     bool empty()
  51.     {
  52.         return head == 0;
  53.     }
  54.     int getlength()
  55.     {
  56.         return size;
  57.     }
  58.     string getx(string x)
  59.     {
  60.         element* r = findx(x);
  61.         string i = r->inf;
  62.         return i;
  63.     }
  64.     string get(int index)
  65.     {
  66.         element* r = find(index);
  67.         string i = r->inf;
  68.         return i;
  69.     }
  70.     void insert(int index, string data)
  71.     {
  72.         element* newptr = new element(data);
  73.         size = getlength() + 1;
  74.         if (index == 1)
  75.         {
  76.             newptr->next = head;
  77.             head = newptr;
  78.         }
  79.         else
  80.         {
  81.             element* prev = find(index - 1);
  82.             newptr->next = prev->next;
  83.             prev->next = newptr;
  84.         }
  85.     }
  86.     void remove(int index)
  87.     {
  88.         element* cur;
  89.         --size;
  90.         if (index == 1)
  91.         {
  92.             cur = head;
  93.             head = head->next;
  94.         }
  95.         else
  96.         {
  97.             element* prev = find(index - 1);
  98.             cur = prev->next;
  99.             prev->next = cur->next;
  100.         }
  101.         cur->next = nullptr;
  102.         delete cur;
  103.     }
  104.     void print()
  105.     {
  106.         for (element* cur = head; cur != nullptr; cur = cur->next)
  107.         {
  108.             out << cur->inf << ' ';
  109.         }
  110.         out << endl;
  111.     }
  112. };
  113.  
  114. int main()
  115. {
  116.     list ls, kk;
  117.     string value;
  118.     while (in >> value)
  119.     {
  120.         ls.insert(ls.getlength() + 1, value);
  121.     }
  122.     in.close();
  123.     int ind = 1;
  124.     while (!ls.empty()) {
  125.         string i = ls.get(0);
  126.         kk.insert(ind, i);
  127.         ind++;
  128.         if (i.length() == 1) {
  129.             kk.insert(ind, i);
  130.             ind++;
  131.         }
  132.         ls.remove(1);
  133.     }
  134.  
  135.     kk.print();
  136.     return 0;
  137. }
  138.  
  139. aarrarar
  140. r
  141. t
  142. base
  143. baza
  144. h
  145. pp
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement