Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Структуры данных_файлы.doc
Скачиваний:
3
Добавлен:
17.04.2019
Размер:
166.91 Кб
Скачать

19

3. Структура данных

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

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

При выборе (разработке) структуры данных нужно руководствоваться решаемой задачей. Затем надлежит выбрать способ представления информации, исходя из средств и возможностей ЭВМ. Кроме того необходимо учитывать характер операций, которые будут выполняться над данными.

В настоящее время пользователи ЭВМ подразделяют данные, необходимые для решения практических задач, на несколько типов, связывая понятие типа не только с представлением данных в адресном пространстве, но и со способами их обработки.

Типы данных

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

В программировании используется правило, по которому явно указывается тип константы, переменной, функции. Это особенно важно, так как транслятор должен выбирать представление данного объекта в памяти ЭВМ, которая должна соответствовать диапазону значений, принимаемых переменной.

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

Таблица 3.1. Структуры данных

Простые

Целые

Логические

Символьные

Вещественные

Сложные

Массивы

Массивы переменной длины

Кольцо

Очередь

Стек

Список

Дерево

Запись

Таблица

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

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

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