Домашнее задание по СиАОД

На лекциях по сиаоду мы проходим материал медленнее, чем нас заставляют делать практики. Поэтому я создаю этот тхреад для взаимопомощи и обмена материалами, которые могут помочь с созданием списков и прочей лабуды, которую мы забудем аккурат после семестра. Следующими постами буду скидывать ссылки на материалы и прочее.

Пример заданий: https://tinyurl.com/32v7pc6f

tenor tenor tenor

4 Likes

http://victor192007.narod.ru/files/cpp_d1.html
Тут большая статья с разбором списков и примерами кода

2 Likes

Вот пример, как надо это делать. Пока реализованы только ввод и вывод. Код принадлежит @LosyashBOI, спасибо ему.

#include <iostream>

using namespace std;

struct List {
   char data;                                  //тип данных элементов
   List* next;
};

void print(List* L, int num) {                  //выводит список
   List* p = L;                                //присваиваем p первый элемент (L указывает на первый элемент)
   cout << "Список L" << num << ":" << endl;

   while (p) {                                 //пока не закончатся элементы (p != nullptr)
       cout << p->data << endl;                //выводим то, что записали
       p = p->next;                            //переходим к следующему
   }
}

void create_list(List *& L, int size) {         //создает список
   List* t;
   cout << "Введите элементы списка: ";
   for (int i = 0; i < size; i++)              //size - размер списка
   {
       t = new List;
       cin >> t->data;                         //вводим элемент
       t->next = L;                            //указываем на начало
       L = t;                                  //добавляем в начало
   }
}

int main(int argc, const char* argv[]) {
   system("chcp 1251");
   List* L1 = NULL, * L2 = NULL;               //объявляем указатели на первые элементы
   int size;

   cout << "Введите размер 1-ого списка: ";
   cin >> size;
   create_list(L1, size);                      //создаем список L1
   print(L1, 1);                               //печатаем

   cout << "Введите размер 2-ого списка: ";
   cin >> size;
   create_list(L2, size);                      //создаем список L2
   print(L2, 2);                               //печатаем

   return 0;
}
3 Likes

Если хочешь получить помощь не только от своих сокурсников, то скинь файл с заданиям. Материал по ссылке могут просмотреть только подписанные на курс… остальные видят фигу.

2 Likes

Согласен с @SyntOwl , хотел поглядеть, может чего подсказать, а зайти не смог.

Задание_1_Однонаправленный_список1.pdf (688.6 КБ)

Залил вот от ссылки выше

помогите с решением первого задания в этом файле.

13 вариант.
Не знаю какой способ тестирования вы проходили, я реализовал через Boost.Test.
Также реализовал листы и ноды через шаблоны, не знаю проходили вы подобное или нет, думаю это будет легко перенести на другие похожие варианты.
UnidirectionalListUnitTest13.zip (6.0 КБ)

dz1.cpp (2.7 КБ)
Спустя 20 дней от дедлайна я все таки сдал это говно!

1 Like