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

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

Если разобрать книгу на отдельные листы и переметать их, книга потеряет свое назначение. Она по-прежнему будет представлять набор данных, но подобрать адекват­ный метод для получения из нее информации весьма непросто. Если же собрать все листы книги а правильной последовательности, мы получим простейшую структуру данных — линейную. Такую книгу уже можно читать, хотя для поиска нужных данных ее придется прочитать подряд, начиная с самого начала, что не всегда удобно.

Для быстрого поиска данных существует иерархическая структура. Так, например, книги разбивают на части, разделы, главы, параграфы и т. п. Элементы структуры более низкого уровня входят в элементы структуры более высокого уровня; разделы состоят из глав, главы из параграфов и т. д.

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

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

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

N п/п Фамилия, Имя, Отчество

1 Аистов Александр Алексеевич

2 Бобров Борис Борисович

3 Воробьева Валентина Владиславовна

27 Сорокин Сергей Семенович

Разделителем может быть и какой-нибудь специальный символ. Нам хорошо известны разделители между словами — это пробелы. В русском и во многих европейских языках общепринятым разделителем предложений является точка.

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

Таким образом, линейные структуры данных (списки) ~ это упорядоченные струк­туры, в которых адрес элемента однозначно определяется его номером.