Лабораторная 10. Двусвязные списки.

  1. Протестировать разработанный на лекциях модуль управления двусвязными списками (шаблон модуля), обнаружить и исправить ошибки. Для тестирования следует разработать программу, которая последовательно проверит работоспособность каждой функции (процедуры) модуля с прохождением по всем ветвям алгоритма и оценкой корректности полученных результатов (например, функция DeleteElement должна быть проверена на работоспособность в ситуациях, когда удаляемый элемент равен nil, является первым или последним элементом, ни первым и ни последним элементом. Во всех случаях следует также проверить корректность возвращаемого результата функции). Решить следующие задачи, используя функции обновленного модуля.
  2. Заполнить со стандартного потока ввода двусвязный список числовых значений. Заполнение завершить, когда будет введено нечисловое значение. Используя функцию listAction, вывести список в прямом и обратном порядке.
  3. Заполнить со стандартного потока ввода двусвязный список числовых значений. Заполнение завершить, когда будет введено нечисловое значение. Вывести полученный список. Перенести каждый второй элемент исходного списка в новый список с помощью функций удаления и добавления элементов. Вывести оба полученных списка.
При решении задач запрещается изменять ключевые значения элементов списка по окончании процесса заполнения.