На лекциях по сиаоду мы проходим материал медленнее, чем нас заставляют делать практики. Поэтому я создаю этот тхреад для взаимопомощи и обмена материалами, которые могут помочь с созданием списков и прочей лабуды, которую мы забудем аккурат после семестра. Следующими постами буду скидывать ссылки на материалы и прочее.
Вот пример, как надо это делать. Пока реализованы только ввод и вывод. Код принадлежит @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;
}
Если хочешь получить помощь не только от своих сокурсников, то скинь файл с заданиям. Материал по ссылке могут просмотреть только подписанные на курс… остальные видят фигу.
13 вариант.
Не знаю какой способ тестирования вы проходили, я реализовал через Boost.Test.
Также реализовал листы и ноды через шаблоны, не знаю проходили вы подобное или нет, думаю это будет легко перенести на другие похожие варианты. UnidirectionalListUnitTest13.zip (6.0 КБ)