Основные структуры данных

Автоматизированная обработка больших объемов данных происходит проще, когда данные упорядочены, т.е. образуют заданную структуру. Среди существующих типов структур данных можно выделить три основных [13]: линейная, иерархическая и табличная.

Линейные структуры данных могут быть представлены списками, в которых каждый элемент данных однозначно определяется своим номером в массиве. Обычный журнал посещаемости занятий, например, имеет структуру списка, т.к. все студенты группы зарегистрированы в нем под уникальными номерами.

При создании любой структуры данных надо решить два вопроса: как разделить элементы данных между собой и как находить нужные элементы. В журнале посещаемости, например, вопросы решаются так: каждый новый элемент списка заносится с новой строки, т.е. разделителем является конец строки, а каждый элемент можно найти по номеру строки.

В случае, когда все элементы списка имеют равную длину A, разделители не нужны. Для нахождения элемента с номером n надо просмотреть список с начала и отсчитать А(n-1) символов. Также упрощенные списки, состоящие из элементов равной длины, называют векторами данных. Итак, линейные структуры данных (списки) – это упорядоченные структуры, в которых адрес элемента однозначно определяется его номером.

В табличных структурах элементы данных определяются адресом ячейки, который состоит не из одного параметра, как в списках, а из нескольких. Для таблицы умножения, например, адрес ячейки определяется номерами строки и столбца. Нужные ячейки находятся на их пересечении, а элемент выбирается из ячейки.

При хранении табличных данных количество разделителей должно быть больше, чем для данных, имеющих структуру списка (строки и столбцы разделяют не одним разделителем, а двумя). Если все элементы таблицы имеют равную длину, они называются матрицами. Для хранения матриц разделители не нужны. Для нахождения элемента с адресом (m, n) в матрице, имеющей M строк и N столбцов, надо просмотреть ее с начала и отсчитать a[N(m-1)+(n-1)] символов, где a – длина одного элемента.

В практике могут быть использованы таблицы (матрицы), у которых размерность (число координат) не два ( строка и столбец), а более. Например, учет учащихся может быть организован в виде таблицы размерностью 5:

-Номер института в университете

-Номер курса (в институте)

-Номер специальности (на курсе)

-Номер группы в потоке одной специальности

-Номер учащегося в группе

Для нахождения данных об учащихся в такой структуре надо знать все пять параметров (координат).

Данные, которые трудно представить в виде списка или таблицы, часто представляют в виде иерархических структур. В иерархической структуре адрес каждого элемента определяется путем доступа (маршрутом), ведущим от вершины структуры к данному элементу. Например, пусть доступа к программе «Калькулятор» в системе Windows имеет вид: Путь -> Программы -> Стандартные -> Калькулятор.

Линейные и табличные структуры являются простыми. Ими легко пользоваться, т.к. адрес каждого элемента задается одним числом (для списка), двумя числами (для двумерной таблицы) или несколькими числами для многомерной таблицы. Они также легко упорядочиваются. Основным методом упорядочивания является сортировка. Данные можно сортировать по любому избранному критерию: по алфавиту, по возрастанию какого – либо параметра и т.п.

Несмотря на ряд достоинств простых структур данных, у них есть недостаток – их трудно обновлять. Например, при добавлении произвольного элемента в упорядоченную структуру списка может происходить изменение адресных данных у других элементов.

Иерархические структуры данных по форме сложнее, чем линейные и табличные, но они не создают проблем с обновлением данных. Их легко развивать путем создания новых уровней. Недостатком иерархических структур является относительная трудоемкость записи адреса элемента данных и сложность упорядочивания. Часто методы упорядочивания в таких структурах основываются на предварительной индексации, которая заключается в том, что каждому элементу данных присваивается свой уникальный индекс, который может использоваться при поиске, сортировке и т.д.

Особо следует сказать об адресных данных. В любой организованной структуре каждый элемент данных имеет адрес. Адреса элементов данных – это тоже данные и их тоже надо хранить и обрабатывать. Таким образом, за упорядоченность данных приходится платить их размножением – появлением адресных данных.

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

Хранение файлов организуется в иерархической структуре, называемой файловой структурой. Вершиной структуры является имя носителя, на котором хранятся файлы. Далее файлы группируются в папки (каталоги), внутри которых могут быть созданы вложенные папки (подкаталоги). Путь доступа к файлу начинается с имени устройства и включает все имена папок (каталогов), через которые проходит. В качестве разделителя используется символ «\». Уникальность имени файла обеспечивается тем, что полным именем файла считается собственное имя файла с путем доступа к нему. Пример записи полного имени файла. C:\информатика\задания\работа с электронными таблицами