VladimirKostovsky

Лаба 2. Да убей меня наконец-то

Mar 28th, 2022 (edited)
100
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 4.51 KB | None | 0 0
  1. #include <iostream>
  2. #include <fstream>
  3. #include <string>
  4. using namespace std;
  5. int number;
  6. struct list3
  7. { char el; list3 *next; } *S; // ГРЕБАННЫЙ СПИСОК
  8. struct dline
  9. { list3 *beg, *end ; } *t; // ПУТЕВОДИТЕЛЬ ПО СПИСКУ
  10.  
  11. void Read(list3* S  ) // функция формирования списка
  12. {
  13.     list3* t;
  14.     t = S;
  15.  
  16.     ifstream F;
  17.     F.open("input.txt");
  18.  
  19.     if (!F.is_open())
  20.     {
  21.         cout << "Файл не открылся! Проверь название/существование" << endl;
  22.     }
  23.     else {
  24.         cout << "Opening file" << endl;
  25.  
  26.         while (!F.eof())
  27.         {
  28.             F >> number; // заглавное звено
  29.             t->next = new list3; // оно смеется надо мной
  30.             t = t->next; // нееет
  31.             t->el = number; // осмысленные комментарии
  32.         }
  33.  
  34.         t->next = new list3; // край мира
  35.         t = t->next;
  36.         t->el = number;
  37.         t->next = NULL;
  38.         cout << "Я прочитал твой файл, хозяин!" << endl;
  39.     }
  40.     F.close(); cout << "Я закрыл файл, с которого читал"<< endl;
  41. }
  42. // список создан, катаемся по dline
  43.  
  44. int pushdline (dline* t, int el) // пушим
  45. {list3 *r; // пробегает список походу
  46.   r = new  list3;  r->el = el;  r->next = NULL; // он по новой это делаеТ?? П-плевать, давай, читай откуда-то, мы же миллионеры
  47.   if (t->beg == NULL)  {t->end = t->beg = r; cout << "Добавился в пустую очередь" << endl;}  // добавление в пустую очередь
  48.   //Segmentation fault, этого указателя t! (переехал на 56 строку)
  49.      else { t->end->next = r; t->end = r; cout << "Ну я добавил в самое начало, оке?" << endl;}
  50. }
  51.  
  52. int  popdline (dline* t, int *el) // удоляем
  53. { list3 *r;
  54.    if (t->beg == NULL)  
  55.         {return 0; cout << "Чел, очередь пуста" << endl;}
  56.         // ДА КТО ТАКОЙ *el... указатель на el (порядок el? или положение. Точно, положение в списке)
  57.   *el = t->beg-> el;  r = t->beg; // захватываем элемент
  58.   // убивать, убивать, убивать, убивать.
  59.   t->beg = t->beg->next; // шо я делаю?
  60.      delete r;
  61.      cout << "Удалил" << endl;// удалять, удалять, удалять
  62. return 1; // оффнуть программу (может не надо?)
  63. }
  64.  
  65.  
  66.  // не кастуется
  67.  void Print(list3 *S)
  68. {
  69.     ofstream fout("output.txt", ios_base::app);
  70.     list3* t;
  71.     for (t = S->next; t->next != NULL; t = t->next)
  72.     {
  73.         fout << t->el << " ";
  74.     }
  75.     fout << endl;
  76. }
  77.  
  78.  // ДА НЕ БЫЛО НИКАКОГО *S
  79.  // НИКОГО ТЫ НЕ СБИВАЛ 510 ЛЕТ НАЗАД
  80.  // *S НИКОГДА НЕ СУЩЕСТВОВАЛО
  81.  // ОН ВСЕГО ЛИШЬ УКАЗАТЕЛЬ
  82.  
  83.  
  84.  int main() {
  85.     S = new list3;
  86.     t = new dline; // Никакой связи с S
  87.     Read(S);
  88.     // на данном этапе у нас лежит полностью готовый список в list3
  89.     Print(r);
  90.     pushdline (t, 42);
  91.     pushdline (t, 42);
  92.     pushdline (t, 42);
  93.  
  94.     popdline (t, 0); // вместо нуля должна быть ссылка?
  95.     Print(S);
  96.  }
  97.  
  98.  // Я МЫСЛЮ, СЛЕДОВАТЕЛЬНО СУЩЕСТВУЮ, МАРК, НЕСИ КАПИТАЛ!
  99.  // Ачивка "Полное погружение"
  100.  // Пересмотреть "Сияние", держа в руках топор.
  101.  
  102.  /*
  103.  Что же пишут в газетах в разделе «Из зала суда»?
  104. Приговор приведен в исполненье. Взглянувши сюда,
  105. обыватель узрит сквозь очки в оловянной оправе,
  106. как лежит человек вниз лицом у кирпичной стены;
  107. но не спит. Ибо брезговать кумполом сны
  108. продырявленным вправе.  
  109. */
  110. // Есть такой зверек - вомбат, а готовой лабы так и нет!
  111. // Да кто такой ваш Бродске
  112.  
  113. /*
  114. int main() {
  115.     S = NULL;
  116.     t = NULL;
  117.     pushdline (t, 0);
  118.     pushdline (t, 15);
  119.     pushdline (t, 13);
  120.     popdline(t, 0);
  121.     Print(S);
  122. }*/
  123.  
  124.  
Add Comment
Please, Sign In to add comment