Структурированные типы данных.
Развитие в вычислительной технике сопровождалось эволюцией представления о роли данных. Одним из свойств компьютеров является способность хранить и обрабатывать большие объемы информации и обеспечивать легкий доступ к этой информации. Информация, подлежащая обработке, представляет некоторый абстрактный фрагмент реального мира. Данные, хранящиеся в компьютере - это абстрактное представление реальности, поскольку некоторые свойства и характеристики реальных объектов при этом игнорируются как несущественные. Например, каждый сотрудник в списке сотрудников некоторого учреждения представлен множеством данных. Это множество включает идентифицирующие данные и данные, относящиеся к профессиональной сфере деятельности. Таким образом, данные о человеке – некий снимок с человека, абстрактное представление.
Решая конкретную задачу, необходимо выбрать множество данных, представляющих реальную ситуацию, затем выбирается способ представление этой информации. Представление данных выбирается исходя из средств и возможностей аппаратного и программного обеспечения информационной системы.
Важную роль играют и свойства самих данных, операции, которые должны выполняться над ними. Развитие аппаратного обеспечения позволяет использовать как простейшие неструктурированные данные, так и более сложные данные, полученные из комбинации простейших, они называются структурированными, поскольку обладают известной организацией.
Современные средства программирования позволяют оперировать множествами, массивами, записями, файлами (очередями). В более сложных случаях – динамические структуры данных, память для хранения которых выделяется в процессе выполнения программы. К таким данным относятся: списки, стеки, деревья, графы.
Структурированные типы данных классифицируют по следующим признакам:
· однородность;
· упорядоченность;
· вид доступа - прямой или последовательный;
· вид организации - статическая или динамическая.
Если все элементы, образующие структуру, однотипны, например, символы, целые числа, то структура называется однородной. Если в ней присутствуют элементы разных типов, то структура называется неоднородной.
Структура является упорядоченной, если между ее элементами определен порядок следования. Примером упорядоченной структуры является числовая последовательность. Наличие индекса в записи элементов структуры указывает на ее упорядоченность.
По способу доступа упорядоченные структуры разделяют на структуры прямого и последовательного доступа. При прямом доступе каждый элемент структуры доступен в любой момент независимо от других элементов.
Если у структуры размер (длина, количество элементов) не может быть изменен при выполнении, а фиксируется заранее, то такая структура называется статической. Соответственно, если размер структуры определяется по ходу решения задачи и меняется при необходимости, то такую структуру называют динамической. Например, такие структуры возникают при описании закономерностей движения очередей.
Самым традиционным из структурированных типов данных является массив (регулярный тип) – однородная упорядоченная статическая структура прямого доступа. Массив объединяет однородные величины одного и того же типа, называемыми компонентами. Все компоненты имеют общее имя – идентификатор и определяются (адресуются) вычисляемым индексом. Обычный прием работы с массивом – выборочное изменение его компонентов. Важной особенностью массива является его статичность, т.е. он должен быть описан в программе, т.е. определены тип и число компонентов массива. Компонентами массива могут быть не только простейшие данные, но и структурные, в том числе массивы. В этом случае мы получаем многомерный массив.
Обобщением массива является комбинированный тип данных – запись.
Запись – это неоднородная упорядоченная статическая структура прямого доступа, т.е. запись – набор именованных компонент – полей, объединенных одним общим именем и идентифицируемых (адресуемых) с помощью имени записи и имен полей (запись – строка таблицы).
Очередь – это линейно-упорядоченный набор следующих друг за другом компонентов, доступ к которым происходит по следующим правилам:
1) новые компоненты добавляются только в хвост очереди
2) значения компонент могут извлекаться только в порядке следования от головы к хвосту очереди (первым вошел – первым вышел, FIFO –First Input First Output).
Стек – это структура данных, в которой тот элемент, который последним в нее помещался, выходит первым (LIFO – Last Input First Output), второе название стека – магазин –по аналогии с магазином стрелкового оружия.
Из рассмотренных структур данных можно создавать различные комбинации, которые называются суперпозициями. Например, файл записей, которая применяется при создании баз данных.