Расчетно-графическая работа

    Расчетно-графическая работа. Классы иерархических структур данных и двоичных файлов.

    Разработанный класс включает в себя:

    • определение динамической структуры данных и необходимых ее размерностей (в виде параметров конструктора);

    • необходимые конструкторы и деструктор (в т.ч. конструктор копирования);

    • метод вывода текущего содержимого структуры данных (или двоичного файла) со вспомогательными данными о текущем состоянии структуры данных (например, индексы в массиве верхнего и нижнего уровней, номера элементов списка и т.д.);

    • указанный в задании метод (переопределенной операции);

    В main-е необходимо проверить работоспособность путем генерации шаблона для какого-либо базового типа или класса строк. Генерируется случайная последовательность значений (или указателей на динамические переменные) и для них выполняется указанный в задании метод. В отчете необходимо предоставить описание структур данных, алгоритма указанного метода, закомментированные фрагменты кода для существенных частей алгоритма, результаты тестирования. Также сдаются и исходные тексты программы.

    Шаблон структуры данных – двухуровневый массив указателей на объекты. Массив верхнего уровня - статический, массивы нижнего уровня – динамические, размерность – параметр конструктора. Включение указателя на объект с сохранением упорядоченности. Если после включения указателя массив заполняется полностью, то создается еще один массив указателей, в который переписывается половина указателей из старого. Предполагается, что операции сравнения хранимых объектов переопределены стандартным образом (в виде операций <,> и т.д..).

    Шаблон структуры данных – двухуровневый массив указателей на объекты. Массив верхнего уровня - статический, массивы нижнего уровня – динамические, размерность – параметр конструктора. Включение указателя на объект по заданному логическому номеру. Если после включения указателя массив заполняется полностью, то создается еще один массив указателей, в который переписывается половина указателей из старого. Предполагается, что операции сравнения хранимых объектов переопределены стандартным образом (в виде операций <,> и т.д..).

    Шаблон структуры данных – двухуровневый массив указателей на объекты. Массив верхнего уровня - статический, массивы нижнего уровня – динамические, размерность – параметр конструктора. Сортировка выбором - в старой структуре данных выбирается указатель на минимальный объект и включается последним в новую структуру данных. Новая структура данных замещает старую в том же объекте.

    Шаблон структуры данных – двухуровневый массив указателей на объекты с типом – параметром шаблона. Массив верхнего уровня – статический. Массивы нижнего уровня – динамические, размерность каждого следующего в 2 раза больше размерности предыдущего. Метод включения указателя на объект по логическому номеру в структуре данных. При переполнении текущего массива указателей нижнего уровня последний указатель переносится в следующий массив указателей.

    Шаблон структуры данных – двухуровневый массив указателей на объекты с типом – параметром шаблона. Структура данных упорядочена по возрастанию. Массив верхнего уровня – статический. Массивы нижнего уровня – динамические, размерность каждого следующего в 2 раза больше размерности. Метод включения указателя на объект с сохранением упорядоченности. При переполнении текущего массива указателей нижнего уровня последний указатель переносится в следующий массив указателей. Предполагается, что операции сравнения хранимых объектов переопределены стандартным образом (в виде операций <,> и т.д..).

    Шаблон структуры данных – двухуровневый массив указателей на объекты с типом – параметром шаблона. Массив верхнего уровня – статический. Массивы нижнего уровня – динамические, размерность каждого следующего в 2 раза больше размерности предыдущего. Метод добавления указателя последним в структуру данных. Предполагается, что для хранимого типа данных переопределена операция ifstream >> TYPE – загрузки содержимого объекта из последовательного потока. Метод загрузки структуры данных из последовательного файла с заданным именем, содержащим объекты хранимого типа.

    Шаблон структуры данных – односвязный список, содержащий статический массив указателей на объекты. Метод включения указателя на объект по логическому номеру в структуре данных. При переполнении текущего массива указателей создается новый элемент списка, в который переписывается половина указателей из текущего.

    Шаблон структуры данных – односвязный список, содержащий статический массив указателей на объекты. Структура данных упорядочена. Метод включения указателя на объект с сохранением упорядоченности. Операция сравнения включаемых объектов переопределена. При переполнении текущего массива указателей создается новый элемент списка, в который переписывается половина указателей из текущего.

    Шаблон структуры данных – односвязный список, содержащий статический массив указателей на объекты. Сортировка выбором. В структуре данных выбирается указатель на минимальный объект и добавляется в новую структуру данных последним. Новая структура данных замещает старую в том же объекте.

    Шаблон структуры данных – односвязный список, содержащий динамический массив указателей на объекты. Размерность массива указателей в каждом последующем элементе списка в 2 раза больше, чем в предыдущем. Метод включения указателя на объект по логическому номеру в структуре данных. При переполнении текущего массива указателей последний указатель переносится в следующий элемент списка.

    Шаблон структуры данных – односвязный список, содержащий динамический массив указателей на объекты. Размерность массива указателей в каждом последующем элементе списка в 2 раза больше, чем в предыдущем. Структура данных упорядочена. Метод включения указателя на объект с сохранением упорядоченности. При переполнении текущего массива указателей последний указатель переносится в следующий элемент списка. Предполагается, что операции сравнения хранимых объектов переопределены стандартным образом (в виде операций <,> и т.д..).

    Шаблон структуры данных – односвязный список, содержащий динамический массив указателей на объекты. Размерность массива указателей в каждом последующем элементе списка в 2 раза больше, чем в предыдущем. Метод добавления указателя на объект последним в структуру данных. Предполагается, что для хранимого типа данных переопределена операция ifstream >> TYPE – загрузки содержимого объекта из последовательного потока. Метод загрузки структуры данных из последовательного файла с заданным именем, содержащим объекты хранимого типа.

    Шаблон структуры данных – односвязный список, содержащий динамический массив указателей на объекты. Размерность массива указателей в каждом последующем элементе списка в 2 раза больше, чем в предыдущем. Метод добавления указателя на объект последним в структуру данных. Сортировка выбором - в старой структуре данных выбирается указатель на минимальный объект и включается последним в новую структуру данных. Новая структура данных замещает старую в том же объекте.

    Шаблон структуры данных – двусвязный циклический список, содержащий статический массив указателей на объекты. Метод включения указателя на объект по логическому номеру в структуре данных. При переполнении текущего массива указателей создается новый элемент списка, в который переписывается половина указателей из текущего.

    Шаблон структуры данных – двусвязный циклический список, содержащий статический массив указателей на объекты. Структура данных упорядочена. Метод включения указателя на объект с сохранением упорядоченности. Операция сравнения включаемых объектов переопределена. При переполнении текущего массива указателей создается новый элемент списка, в который переписывается половина указателей из текущего.

    Шаблон структуры данных – дерево. Вершина дерева содержит статический массив указателей на объекты (ограниченный NULL-указателем) и два указателя на правое и левое поддерево. Значения в дереве не упорядочены. Естественная нумерация значений производится путем обхода дерева по принципу «левое поддерево - вершина - правое поддерево». Разработать методы включения элемента по заданному логическому номеру и получения значения элемента по заданному логическому номеру. Если при включении указателя в найденный массив последний переполняется, то самый правый указатель включается в правое поддерево с относительным номером 0.

    Шаблон структуры данных – двоичное дерево. Вершина дерева содержит статический массив указателей на объекты и два указателя на правое и левое поддерево. Значения в дереве (в массиве и в поддеревьях) упорядочены. Если при включении указателя в найденный массив последний переполняется, то самый правый указатель переносится в правое поддерево.

    Шаблон структуры данных – дерево. Вершина дерева содержит указатель на объект и N указателей на потомков. Функция помещает указатели на объекты в дерево так, что объекты с меньшим значением располагаются ближе к корню. Если новый объект «проходит» через вершину, в которой находится объект с большим значением, то новый объект занимает место старого, а алгоритм включения продолжается для вытесненного объекта. Метод включения выбирает потомка минимальным количеством вершин в поддереве. Предполагается, что операции сравнения хранимых объектов переопределены стандартным образом (в виде операций <,> и т.д..).

    Шаблон структуры данных – дерево. Вершина дерева содержит два указателя на объекты и три указателя на поддеревья. Данные в дереве упорядочены. Метод включения нового значения в дерево с сохранением упорядоченности

    Шаблон структуры данных – двоичное дерево. Вершина дерева содержит статический массив указателей на объекты и два указателя на правое и левое поддерево. Значения в дереве упорядочены. ( объекты в массиве указателей в каждом элементе упорядочены, дерево в целом также упорядочено). Метод включает в дерево указатель на объект с сохранением упорядоченности. . Если при включении указателя в найденный массив последний переполняется, то самый правый указатель переносится в правое поддерево. Предполагается, что операции сравнения хранимых объектов переопределены стандартным образом (в виде операций <,> и т.д..)

    Класс – двоичный файл, производный от fstream. Файл содержит массив указателей на упорядоченные по алфавиту строки, представленные записями переменной длины: целый счетчик и последовательность символов строки (без 0-ограничителя). Формат файла: в начале – файла, размерность массива указателей, текущее количество указателей, адрес (смещение) массива указателей в файле. Переопределение операции сложения “объект + указатель на строку” – добавление строки в файл с сохранением порядка. Результат – ссылка на первый операнд.

    Класс – двоичный файл, производный от fstream. Файл содержит массив указателей на упорядоченные по алфавиту строки, представленные записями переменной длины: целый счетчик и последовательность символов строки (без 0-ограничителя). Формат файла: в начале – файла, размерность массива указателей, текущее количество указателей, адрес (смещение) массива указателей в файле. Операция сортировки выбором: выбирается строка минимальной длины и копируется в выходной файл того же формата. Во входном файле выбранная строка отмечается значением счетчика «-1».

    Класс – двоичный файл, производный от fstream. Файл содержит массив указателей на упорядоченные по алфавиту строки, представленные записями переменной длины: целый счетчик и последовательность символов строки (без 0-ограничителя). Формат файла: в начале – файла, размерность массива указателей, текущее количество указателей, адрес (смещение) массива указателей в файле. Операция сортировки вставками: выбирается очередная строка и копируется с сохранением порядка в выходной файл того же формата.

    Класс – двоичный файл, производный от fstream. Файл содержит массив указателей на упорядоченные по алфавиту строки, представленные записями переменной длины: целый счетчик и последовательность символов строки (без 0-ограничителя). Формат файла: в начале – файла, размерность массива указателей, текущее количество указателей, адрес (смещение) массива указателей в файле. Двоичный поиск по строке-образцу. Операция возвращает номер первой строки, начало которой совпадает с образцом.

    Класс – двоичный файл, производный от fstream. Файл содержит массив указателей на строки, представленные записями переменной длины: целый счетчик и последовательность символов строки (без 0-ограничителя). Формат файла: в начале файла - размерность массива указателей, текущее количество указателей, адрес (смещение) массива указателей в файле. Операция создания нового двоичного файла и заполнения его из заданного текстового. Параметр – имя текстового файла.

    Класс – двоичный файл, производный от fstream. Файл содержит двоичное дерево, каждая вершина которого содержит строку, представленную записью переменной длины: целый счетчик и последовательность символов строки (без 0-ограничителя). Формат файла: в начале – файла, указатель на корневую вершину. Вершина содержит файловые указатели на правое и левое поддеревья и непосредственно за ними строку. Переопределение операции сложения “объект + указатель на строку” – добавление строки в файл. Результат – ссылка на первый операнд.

    Класс – двоичный файл, производный от fstream. Файл содержит двоичное дерево, каждая вершина которого содержит статический массив целых переменных. Целые в дереве и в массивах упорядочены. Формат файла: в начале файла - указатель на корневую вершину. Вершина содержит файловые указатели на правое и левое поддеревья, количество заполненных элементов в массиве и сам массив. Переопределение операции сложения “объект + целое” – добавление целого в файл. Результат – ссылка на первый операнд. Если массив, в который необходимо производить включение, заполнен, то самый последний его элемент рекурсивно «сносится» в правое поддерево.

    Класс – двоичный файл, производный от fstream. Файл содержит двоичное дерево, каждая вершина которого содержит динамический массив целых переменных. Целые в дереве и в массивах упорядочены. Формат файла: в начале файла - указатель на корневую вершину. Вершина содержит файловые указатели на правое и левое поддеревья, количество целых значений во всем поддереве, размерность массива сам массив. Переопределение операции “объект[целое]” – двоичный поиск заданного значения в файле. Результат – логический номер элемента в структуре данных.

    Класс – двоичный файл, производный от fstream. Файл содержит односвязный список строк в формате записей переменной длины со счетчиком. Формат файла: в начале файла – заголовок списка. Элемент списка содержит файловый указатель на следующий и саму строку в виде записи переменной длины. Функция сортировки выбором. Из входного файла выбирается минимальная строка и переписывается последней в выходной файл того же самого формата. Во входном файле выбраные строки помечаются нулевым счетчиком длины.

    Класс – двоичный файл, производный от fstream. Файл содержит односвязный список строк в формате записей переменной длины со счетчиком. Формат файла: в начале файла – заголовок списка. Элемент списка содержит файловый указатель на следующий и саму строку в виде записи переменной длины. Операция сортировки вставками: выбирается очередная строка и копируется с сохранением порядка в выходной файл того же формата.

    Класс – двоичный файл, производный от fstream. Файл содержит двусвязный циклический список строк в формате записей переменной длины со счетчиком. Формат файла: в начале файла – заголовок списка. Элемент списка содержит файловые указатели на следующий и предыдущий и саму строку в виде записи переменной длины. Функция сортировки выбором. Из входного файла выбирается минимальная строка и переписывается последней в выходной файл того же самого формата. Во входном файле выбраные строки помечаются нулевым счетчиком длины.

    Класс – двоичный файл, производный от fstream. Файл содержит двусвязный циклический список строк в формате записей переменной длины со счетчиком. Формат файла: в начале файла – заголовок списка. Элемент списка содержит файловые указатели на следующий и предыдущий и саму строку в виде записи переменной длины. Операция сортировки вставками: выбирается очередная строка и копируется с сохранением порядка в выходной файл того же формата.

    Шаблон – двоичный файл, содержащий двусвязный циклический список объектов. Тип хранимого в файле объекта – параметр шаблона. В начале файла расположен файловый указатель на первый элемент списка. Элемент списка содержит 2 файловых указателя на следующий и предыдущий элементы, за которыми следует объект. Разработать метод включения объекта по логическому номеру. Использовать поэлементную загрузку структуры данных. Для позиционирования в потоке можно использовать методы seekg(long,mode) и long tellg(), для хранимого объекта переопределен метод fstream << object который записывает объект с текущей позиции в открытый двоичный поток и метод fstream >> object, который читает содержимое объекта с текущей позиции открытого потока.

    Шаблон – двоичный файл, содержащий двусвязный циклический список объектов. . Тип хранимого в файле объекта – параметр шаблона. В начале файла расположен файловый указатель на первый элемент списка. Элемент списка содержит 2 файловых указателя на следующий и предыдущий элементы, за которыми следует объект. Разработать метод добавления объекта с сохранением упорядоченности. Предполагается, что операции сравнения хранимых объектов переопределены стандартным образом (в виде операций <,> и т.д..). Использовать поэлементную загрузку структуры данных. Для позиционирования в потоке можно использовать методы seekg(long,mode) и long tellg(), для хранимого объекта переопределен метод fstream << object который записывает объект с текущей позиции в открытый двоичный поток и метод fstream >> object, который читает содержимое объекта с текущей позиции открытого потока.

    Шаблон – двоичный файл, содержащий односвязный список объектов. Тип хранимого в файле объекта – параметр шаблона В начале файла расположен файловый указатель на первый элемент списка. Элемент списка содержит файловый указатель на следующий элемент, за которым следует объект. Разработать метод включения объекта по логическому номеру. Использовать поэлементную загрузку структуры данных. Для позиционирования в потоке можно использовать методы seekg(long,mode) и long tellg(), для хранимого объекта переопределен метод fstream << object который записывает объект с текущей позиции в открытый двоичный поток и метод fstream >> object, который читает содержимое объекта с текущей позиции открытого потока.

    Шаблон– двоичный файл, содержащий односвязный список объектов. Тип хранимого в файле объекта – параметр шаблона. В начале файла расположен файловый указатель на первый элемент списка. Элемент списка содержит файловый указатель на следующий элемент, за которым следует объект. Разработать метод добавления объекта с сохранением упорядоченности. Предполагается, что операции сравнения хранимых объектов переопределены стандартным образом (в виде операций <,> и т.д..). Использовать поэлементную загрузку структуры данных. Для позиционирования в потоке можно использовать методы seekg(long,mode) и long tellg(), для хранимого объекта переопределен метод fstream << object который записывает объект с текущей позиции в открытый двоичный поток и метод fstream >> object, который читает содержимое объекта с текущей позиции открытого потока.

    Шаблон – двоичный файл, содержащий массив указателей на объекты. Тип хранимого в файле объекта – параметр шаблона. В начале файла расположены: размерность массива указателей (int), текущее количество указателей (int) и смещение (адрес) массива указателей. Разработать метод добавления объекта в файл по заданному логическому номеру. Если происходит заполнение массива указателей, то его размерность увеличивается в 2 раза и он переписывается в конец файла. Использовать поэлементную загрузку структуры данных. Для позиционирования в потоке можно использовать методы seekg(long,mode) и long tellg(), для хранимого объекта переопределен метод fstream << object который записывает объект с текущей позиции в открытый двоичный поток и метод fstream >> object, который читает содержимое объекта с текущей позиции открытого потока.

    Шаблон – двоичный файл, содержащий массив указателей на объекты. Тип хранимого в файле объекта – параметр шаблона. В начале файла расположены: размерность массива указателей (int), текущее количество указателей (int) и смещение (адрес) массива указателей. Разработать метод двоичного поиска объекта на основе сравнения с объектом-образцом. Предполагается, что операции сравнения хранимых объектов переопределены стандартным образом (в виде операций <,> и т.д..). Использовать поэлементную загрузку структуры данных. Для позиционирования в потоке можно использовать методы seekg(long,mode) и long tellg(), для хранимого объекта переопределен метод fstream << object который записывает объект с текущей позиции в открытый двоичный поток и метод fstream >> object, который читает содержимое объекта с текущей позиции открытого потока.

    Шаблон – двоичный файл, содержащий массив указателей на объекты. Тип хранимого в файле объекта – параметр шаблона. В начале файла расположены: размерность массива указателей (int), текущее количество указателей (int) и смещение (адрес) массива указателей. Разработать метод сортировки объектов выбором: выбирается минимальный объект и переписывается в выходной файл аналогичного формата. Удаленная из файла строка помечается в массиве файловых указателей нулевым (0L) адресом. Предполагается, что операции сравнения хранимых объектов переопределены стандартным образом (в виде операций <,> и т.д..). Использовать поэлементную загрузку хранимых объектов и хранение в памяти массива файловых указателей. Для позиционирования в потоке можно использовать методы seekg(long,mode) и long tellg(), для хранимого объекта переопределен метод fstream << object который записывает объект с текущей позиции в открытый двоичный поток и метод fstream >> object, который читает содержимое объекта с текущей позиции открытого потока.

    Шаблон – двоичный файл, содержащий массив указателей на объекты. Тип хранимого в файле объекта – параметр шаблона. В начале файла расположены: размерность массива указателей (int), текущее количество указателей (int) и смещение (адрес) массива указателей. Разработать метод сортировки объектов вставками: выбирается очередной объект и переписывается в выходной файл аналогичного формата с сохранением порядка. Предполагается, что операции сравнения хранимых объектов переопределены стандартным образом (в виде операций <,> и т.д..). Использовать поэлементную загрузку хранимых объектов и хранение в памяти массива файловых указателей. Для позиционирования в потоке можно использовать методы seekg(long,mode) и long tellg(), для хранимого объекта переопределен метод fstream << object который записывает объект с текущей позиции в открытый двоичный поток и метод fstream >> object, который читает содержимое объекта с текущей позиции открытого потока.

    Шаблон – двоичный файл, содержащий двоичное дерево объектов. Тип хранимого в файле объекта – параметр шаблона. В начале файла расположен указатель на корневую вершину. Вершина содержит два файловых указателя на правое и левое поддерево и сам объект, который непосредственно следует за указателями. Структура данных упорядочена. Разработать метод добавления объекта в файл. Предполагается, что операции сравнения хранимых объектов переопределены стандартным образом (в виде операций <,> и т.д..). Использовать поэлементную загрузку структуры данных. Для позиционирования в потоке можно использовать методы seekg(long,mode) и long tellg(), для хранимого объекта переопределен метод fstream << object который записывает объект с текущей позиции в открытый двоичный поток и метод fstream >> object, который читает содержимое объекта с текущей позиции открытого потока.

    Шаблон – двоичный файл, содержащий двоичное дерево объектов. Тип хранимого в файле объекта – параметр шаблона. В начале файла расположен указатель на корневую вершину. Вершина содержит два файловых указателя на правое и левое поддерево, счетчик количества объектов (int) и непосредственно следующий за ним массив объектов. Структура данных упорядочена (дерево и массив объектов). Разработать метод поиска и возвращения указателя на объект, совпадающий со значением объекта-ключа (двоичный поиск по ключу). Предполагается, что операции сравнения хранимых объектов переопределены стандартным образом (в виде операций <,> и т.д..). Использовать поэлементную загрузку структуры данных. Для позиционирования в потоке можно использовать методы seekg(long,mode) и long tellg(), для хранимого объекта переопределен метод fstream << object который записывает объект с текущей позиции в открытый двоичный поток и метод fstream >> object, который читает содержимое объекта с текущей позиции открытого потока.

    Шаблон – двоичный файл, содержащий двоичное дерево объектов. Тип хранимого в файле объекта – параметр шаблона. В начале файла расположен указатель на корневую вершину. Вершина содержит два файловых указателя на правое и левое поддерево, счетчик количества объектов (int) и статический массив указателей на объекты. Структура данных упорядочена (дерево и массив объектов). Разработать метод поиска и возвращения указателя на объект, совпадающий со значением объекта-ключа (двоичный поиск по ключу). Предполагается, что операции сравнения хранимых объектов переопределены стандартным образом (в виде операций <,> и т.д..). Использовать поэлементную загрузку структуры данных. Для позиционирования в потоке можно использовать методы seekg(long,mode) и long tellg(), для хранимого объекта переопределен метод fstream << object который записывает объект с текущей позиции в открытый двоичный поток и метод fstream >> object, который читает содержимое объекта с текущей позиции открытого потока.