Лабораторная работа 7. Динамические списки. В данной лабораторной работе необходимо создать динамический список (в зависимости от варианта на основе стека, очереди или двусвязного списка). Список содержит информацию о студентах: фамилия, имя, отчество, дата рождения, номер группы (строка из букв и цифр), средний балл за контрольный срок и пол студента. Информация о студентах вводится последовательно и завершается строкой «end» без кавычек. Пример: Ivanov Ivan Ivanovich 23.08.1995 1.4 male Perova Elena Igorevna 09.03.1996 1.9 female end Для ввода данных необходимо реализовать функцию добавления студента в список, функцию удаления студента по номеру, функцию поиска студента в списке по фамилии, имени и номеру группы, которая возвращает номер студента в списке, либо число -1, если такой студент не найден. Кроме того, необходимо реализовать функцию вывода списка студентов на экран и дополнительную функцию, которая дана в варианте. 1. Стек. Функция редактирования информации о студенте по его номеру в списке. 2. Очередь. Функция сортировки списка студентов по фамилии и имени. 3. Двусвязный список. Функция, которая сортирует студентов по номеру группы, а внутри группы по фамилии. 4. Стек. Функция, в которой вводится текущая дата и которая определяет студентов, с днями рождения в ближайшие три дня. 5. Очередь. Функция, в которой задаётся некоторая строка из символов и выводится список всех студентов, у которых фамилия содержит введённую строку в качестве подстроки. 6. Двусвязный список. Функция, которая выводит список студентов, подлежащих призыву. 7. Стек. Функция, которая позволяет расформировать введённую группу и распределить студентов из этой группы по остальным таким образом, чтобы в первую очередь студенты переходили в ту группу, где меньше всего людей. 8. Очередь. Функция для отчисления всех студентов, чей контрольный срок ниже введённого значения. 9. Двусвязный список. Функция для подсчёта среднего балла в каждой группе.