Задания для самостоятельного выполнения

Склонируйте этот репозиторий и вот этот репозиторий.

  1. Напишите код, который проходит тесты из репозитория - это базовый вариант.
  2. На его основе напишите тесты для своего варианта списков.
  3. Напишите код, проходящий ваши тесты.
  4. Имея отлаженный код списков, проходящий все тесты, используйте его для решения задачи по своему варианту.

В итоге у вас должны быть следующие части практики:

  1. Код, проходящий тесты из репозитория.
  2. Тесты для своего варианта списков:
    • на Python,
    • на С (неинтрузивный вариант),
    • на С (интрузивный вариант).
  3. Код своего варианта списков.
  4. Решение задачи во варианту.

Варианты заданий

  1. Двусвязный список. Узел списка — информация о студенте: фамилия, год рождения, год поступления, оценки по предметам. Студентов, поступивших в нечетном году, занести в другой список (с удалением из первого).
  2. Очередь в магазине. Узел очереди: номер, индикатор — является ли человек в очереди ветераном. Переставить ветеранов в начало очереди, сохраняя их порядок.
  3. Кольцевой список. Узел - данные об академиках. Сформировать списки с физиками и математиками, упорядоченные по дате избрания в АН.
  4. Двусвязный кольцевой список. Узел — информация о лётчиках: имя, год рождения, звание, число полетов, число побед, статус (служит, в отставке, погиб в бою, пропал без вести). Получить список лётчиков в отставке.
  5. Хоккейные команды. Два стека: ВХЛ и КХЛ. Запись о команде: название и число набранных очков. 4 лучшие команды ВХЛ перевести в КХЛ, 4 худшие команды КХЛ перевести в ВХЛ (сортировка стека).
  6. Дек сотрудников предприятия. Данные: ФИО, пол, возраст, должность, стаж. Разделить мужчин и женщин на два дека и распечатать их.
  7. Магазин. Список с товарами (название, категория, цена). Очередь покупателей (покупаемые товары, количество товара). Список с товарами редактируется по мере обслуживания очереди, покупатели, совершившие покупки - удаляются.
  8. Двусвязный список чёрных дыр. Разделить на три новых списка (квазары, блазары, и нет данных), упорядоченных по массе.
  9. Кольцевой список дистрибутивов Linux. Извлечь и содать 3 новых списка, упорядоченных по дате появления дистрибутива: Debian-based, Arch-based и Gentoo-based.
  10. Двусвязный кольцевой список морских портов. Разбить на несколько списков по бассейнам, упорядочив по пропускной способности.
  11. Реализовать выполнение арифметических операций с помощью стека и обратной польской записи.
  12. Дек экзопланет. Упорядочить планеты по расстоянию от Солнца и температуре поверхности.