Для работы с массивом необходимо знать его размерность, хотя бы в начале работы программы. Если это данное не известно то можно либо сильно увеличить резервируемую память, либо рисковать ограниченность пространства для данных в массиве. Данную проблему решают связные списки. Связанный список это структура данных, содержащая из взаимосвязанных блоков. Идея состоит в том, что бы создать класс, который поддерживал бы данные определённого типа, среди которых был бы указатель, связанный с другим объектом этого класса.
Существуют три основных вида списков:
§ Однонаправленные списки (очередь, стек);
§ Двунаправленные списки (дек и т.д.);
§ Деревья.
Названия образуются от количества связующих список указателей в каждом объекте списка.
Список состоит из узлов, узлы представляют собой абстрактные классы. Начало — это начало обработки промежуточных узлов списка, которые отвечают за хранение данных, указатель узла - “хвост” обязательно имеет значение null (0).
// программа работы с динамическими списками при помощи классов.
// однонаправленные списки, двунаправленные списки и деревья.
#include <iostream.h>
#include <iomanip.h>
#include <fstream.h>
ofstream fout("rez.txt");
ifstream fin("rez.txt");