Вариант 10. Подготовить текстовый файл,
содержащий не менее 12 целых чисел.
Прочитать данные из этого файла и сформировать односвязный кольцевой список.
В сформированном списке целых чисел из каждого положительного элемента списка
вычесть значение следующего элемента,
а к каждому отрицательному элементу списка прибавить значение следующего элемента.
Вывести на экран исходный список и после его обработки.
После завершения работы со списком освободите занимаемую им динамическую память
-
-
- Результат работы программы
-
- Алгоритм решения задачи
- Открыть файл для чтения данных;
- Создать фиктивный элемент для инициализации АТД «список»;
- Занести первый элемент в начало списка и присвоить этот элемент фиктивному элементу;
- Считать следующий элемент и занести в список после первого элемента;
- Переприсвоить указатель на элемент списка указывать на только что занесённый элемент в список;
- Перейти к пункту 4, пока все данные из файла не будут считаны;
- Закрыть файл для чтения, так как все данные считаны;
- Назначить указывать текущему элементу (последнему занесённому в список) на первый элемент списка, таким образом организовав кольцевой список;
- Вывести исходные данные на экран, начиная с первого элемента;
- Выполнить поставленную задачу с помощью функции, начиная с первого элемента до последнего включительно (так как используется кольцевой список);
- Вывести обработанные данные на экран, начиная с первого элемента;
- Освободить динамически выделенную память поэлементно начиная со второго элемента, а затем, освободить начальный элемент;
- Последовательность действий при программной реализации:
- Задать класс с необходимыми полями для каждого элемента и статической переменной для всего списка в целом;
- Реализовать алгоритм решения поставленной задачи;
- Реализовать основные функции работы со списком, реализованным на указателях (Конструктор – инициализация, InsertNode(), DeleteNode(), Dispose());
- Реализовать в главной функции корректное считывание данных из файла и вывод данных в консоль обработанных данных в списке;