• Предмет: Информатика
  • Автор: dfggghjc
  • Вопрос задан 5 месяцев назад

C++
Из односвязного списка с фамилиями студентов двух групп сформировать два циклических по группам, причем фамилии в циклических списках должны быть упорядочены.

Ответы

Ответ дал: sladvs
1

#include <iostream>

#include <string>

struct Student {

std::string surname;

Student* next;

};

void formCyclicGroup(Student*& head, int groupSize) {

Student* tail = head;

for (int i = 0; i < groupSize - 1; ++i) {

tail = tail->next;

}

tail->next = head;

}

void sortSingleLinkedList(Student*& head) {

for (Student* i = head; i != nullptr; i = i->next) {

for (Student* j = i->next; j != nullptr; j = j->next) {

if (i->surname > j->surname) {

std::swap(i->surname, j->surname);

}

}

}

}

int main() {

Student* firstGroup = new Student{"Johnson", new Student{"Smith", new Student{"Brown", nullptr}}};

Student* secondGroup = new Student{"Davis", new Student{"Jones", new Student{"Miller", nullptr}}};

sortSingleLinkedList(firstGroup);

formCyclicGroup(firstGroup, 3);

sortSingleLinkedList(secondGroup);

formCyclicGroup(secondGroup, 3);

return 0;

}

В этом примере sortSingleLinkedList сортирует список в порядке возрастания, а formCyclicGroup принимает заголовок списка и размер группы в качестве входных данных и делает список циклическим.


dfggghjc: А как сделать чтоб информация выводилась на консоль?
Вас заинтересует