Данные, используемые в любой информационной модели, всегда определенным образом упорядочены, структурированы. Иначе можно сказать так: данные, на которых базируется информационная модель, представляют собой систему со всеми характерными признаками – элементным составом, структурой, назначением.
Такие структурированные системы данных часто называют структурами данных.
Мы рассмотрим несколько часто используемых видов описания структур данных:
- графы,
- иерархические структуры (деревья) и
- таблицы.
1.1 Графы
1.1.1 Неориентированный граф
В разговорной речи мы часто используем словесное (вербальное) представление информации.
Например, словесное описание некоторой местности: «Наш район состоит из пяти поселков: Дедкино, Бабкино, Репкино, Кошкино и Мышкино. Автомобильные дороги проложены между: Дедкино и Бабкино, Дедкино и Кошкино, Бабкино и Мышкино, Бабкино и Кошкино, Кошкино и Репкино».
По такому описанию довольно трудно представить себе эту местность, нелегко и запомнить описание. А представьте себе, что поселков не 5, а 25!
Всё гораздо понятнее становится из схемы (на ней поселки обозначены первыми буквами своих названий)
Это не карта местности.
Здесь не выдержаны направления по сторонам света, не соблюден масштаб.
На этой схеме отражен лишь факт существования пяти поселков и дорожной связи между ними. Такая схема называется графом.
Глядя на этот граф, легко понять структуру дорожной системы в данной местности. Построенный граф позволяет, например, ответить на вопрос: через какие поселки надо проехать, чтобы добраться из Репкино в Мышкино.
Видно, что есть два возможных пути:
- 1 Р-К-Б-М
- 2 Р-К-Д-Б-М
Очевидно, первый путь более выгодный, он короче. Однако, если по какой-то причине дорога между К и Б окажется непроезжей, то единственным остается второй путь. Граф на рисунке 1 еще называют сетью.
Для сети характерна возможность множества различных путей перемещения по ребрам между некоторыми парами вершин.
Для сетей также характерно наличие замкнутых путей, которые называют циклами. На рис.1 имеется цикл К-Д-Б-К. Кстати, термин «дорожная сеть» используется и в разговорной речи.
Граф изображенный на рис.1 является неориентированным графом. На нем каждое ребро обозначает наличие дорожной связи между двумя пунктами. Но дорожная связь действует одинаково в обе стороны. Такую связь еще называют симметричной.
1.1.2 Ориентированный граф
Граф на рис.2 показывает возможные варианты переливания крови. Группы крови обозначены вершинами графа. А стрелки указывают на возможность переливания одной группы крови человеку с другой группой крови.
Связи между вершинами данного графа несимметричны и поэтому изображаются направленными линиями со стрелками.
Такие линии принято называть дугами.
Граф с такими свойствами называется ориентированным. Линия, выходящая и входящая в одну и ту же вершину, называется петлей.
Граф [graph - от греч. - пишу, изображаю] – это средство для наглядного представления состава и структуры системы.
Вершины графа – это компоненты системы изображаемые кружками, овалами, прямоугольниками и пр.
Дуги – это направленные линии (стрелки), связывающие компоненты между собой определенным образом.
Ребра – это ненаправленные линии, связывающие компоненты между собой определенным образом.
Петля – это ребро, соединяющее вершину с нею самой.
Вершины, которым не соответствует ни одно ребро, называются "изолированными".
Сеть – это граф, в котором вершины связаны между собой по принципу «многие ко многим»
Число ребер, соединяющих две фиксированные вершины, может быть произвольным, поскольку оно определяется количеством и характером связей между соответствующими этим вершинам объектами, В то же время каждому ребру соответствует не более двух вершин.
1.1.3 Иерархические структуры (деревья)
Иерархическую структуру имеют, например, системы административного управления, между элементами которых установлены отношения подчиненности.
На рис.3 изображен граф, отражающий иерархическую административную структуру нашего государства.
Такой граф называется деревом.
Основным свойством дерева является то, что между любыми двумя его вершинами существует единственный путь.
Деревья не содержат циклов и петель.
Дерево – это граф, предназначенный для отображения вложенности, подчиненности, наследован.ия и т.п. между объектами. В таком графе нет связанных по замкнутой линии вершин
Каждая вершина связана только с верхней и не связана больше ни с чем.
Обычно у дерева, отображающего иерархическую систему, выделяется одна главная вершина, которая называется корнем дерева.
От нее идут ветви дерева.
От корня начинается отсчет уровней дерева. Каждая вершина дерева (кроме корня) имеет одну исходную вершину на предыдущем уровне и может иметь множество порожденных вершин на следующем уровне.
Такой принцип связи называется «один ко многим», в отличие от сети – там связь «многие ко многим».
Вершины, которые не имеют порожденных вершин, называются листьями.
На рис.3 листьями являются вершины, обозначающие города.
Иерархическими являются различные системы классификации в науке. (например, в биологии весь животный мир Земли рассматривается как система, которая делится на типы животных, типы делятся на классы, классы состоят из отрядов, отряды – из семейств, семейства делятся на роды, роды – на виды. Имеем шестиуровневую иерархическую структуру.
При изучении информатики вам также приходилось встречаться с иерархическими системами.
Например, система хранения файлов на магнитных дисках организована по иерархическому принципу.
1.1.4 Иерархические структуры (таблица)
Таблица – универсальное средство представления информации. Чаще всего мы пользуемся прямоугольными таблицами. Простейшая таблица состоит из строк и граф (столбцов). Пересечение строки и столбца образует ячейку.
Данная таблица является примером таблицы типа «объект – свойство». Каждая строка такой таблицы относится к конкретному объекту. В нашем примере объект – это автор книги.
Другой тип таблиц называется «объект – объект».
Такие таблицы отражают взаимосвязь между различными объектами. Примером является таблица успеваемости учеников по разным предметам.
Эта таблица отражает связь между объектами двух типов: учениками и изучаемыми дисциплинами. Оценка (расположена в ячейке) является характеристикой такой связи.
Важной разновидностью таблиц типа «объект-объект» являются двоичные матрицы. Двоичные матрицы отражают качественную связь между объектами: есть связь или нет связи.
Может возникнуть вопрос: зачем мы переводим графы в табличную форму? Ведь граф, с точки зрения человека, гораздо нагляднее и понятнее представляет структуру системы, чем таблица.
Для человека это действительно так. Однако для компьютерной обработки табличная форма подходит лучше.
- Многие компьютерные технологии работают с таблицами (базы данных, электронные таблицы);
- обработку таблиц удобно описывать на универсальных языках программирования.
- Поэтому представление системы в форме графа обычно используется в теоретических моделях, а в компьютерном моделировании чаще работают с табличным представлением.
- С помощью таблиц можно находить решения логических задач. Такая форма решения задачи является наиболее наглядной и простой.