Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОАиП 2012-13 ПР1 Составление блок схем.doc
Скачиваний:
9
Добавлен:
25.11.2019
Размер:
2.93 Mб
Скачать

3.1.1 Основные понятия структур данных

В основе работы компьютера лежит умение оперировать только с одним видом данных — с отдельными битами, или дво­ичными цифрами. Работает же с этими данными компьютер только в соответствии с неизменным набором алгоритмов, кото­рые определяются системой команд процессора. Задачи, кото­рые решаются с помощью компьютера, редко выражаются на языке битов. Как правило, данные имеют форму чисел, литер, текстов, символов и более сложных структур типа последова­тельностей, списков и деревьев. Еще разнообразнее алгоритмы, применяемые для решения различных задач; фактически алго­ритмов не меньше, чем вычислительных задач.

Структура данных относится по существу к пространственным понятиям: ее можно свести к схеме организации информа­ции в памяти компьютера. Алгоритм же является соответствующим процедурным элементом в структуре программы — он служит рецептом расчета. Первые алгоритмы были придуманы для решения численных задач типа умножения чисел, нахождения наибольшего общего делителя, вычисления тригонометрических функций и др. Сегодня в равной степени важны и нечисленные алгоритмы; они разработаны для таких задач, как, например, поиск в тексте заданного слова, планирование событий, сорти­ровка данных в указанном порядке и т. п. Нечисленные алго­ритмы оперируют с данными, которые не обязательно являются числами.

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

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

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

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

Интегрированными называются такие структуры данных, со­ставными частями которых являются другие структуры дан­ных — простые или в свою очередь интегрированные. Интегри­рованные структуры данных конструируются программистом с использованием средств интеграции данных, предоставляемых языками программирования.

В зависимости от отсутствия или наличия явно заданных - связей между элементами данных следует различать несвязные структуры (векторы, массивы, строки, стеки, очереди) и связные структуры (связные списки).

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