- •Составление блок схем
- •Содержание
- •Практическая работа 1
- •Составление блок схем
- •3.1.1 Основные понятия структур данных
- •3.2 Общие сведения об алгоритмах.
- •3.2.1 Свойства алгоритма
- •3.2.2 Виды алгоритмов и их реализация
- •3.2.3 Средства изображения алгоритмов
- •3.3 Этапы разработки программного продукта
- •3.4 Базовые алгоритмические структуры
- •4 Задания и алгоритм выполнения работы
- •Рекомендации по оформлению отчета.
- •Контрольные вопросы
3.1.1 Основные понятия структур данных
В
основе работы компьютера лежит умение
оперировать только с одним видом данных
— с отдельными битами, или двоичными
цифрами.
Работает
же с этими данными компьютер только в
соответствии с неизменным набором
алгоритмов, которые определяются
системой команд процессора. Задачи,
которые решаются с помощью компьютера,
редко выражаются на языке битов. Как
правило, данные имеют форму чисел, литер,
текстов, символов и более сложных
структур типа последовательностей,
списков и деревьев. Еще разнообразнее
алгоритмы, применяемые для решения
различных задач; фактически алгоритмов
не меньше, чем вычислительных задач.
Структура данных относится по существу к пространственным понятиям: ее можно свести к схеме организации информации в памяти компьютера. Алгоритм же является соответствующим процедурным элементом в структуре программы — он служит рецептом расчета. Первые алгоритмы были придуманы для решения численных задач типа умножения чисел, нахождения наибольшего общего делителя, вычисления тригонометрических функций и др. Сегодня в равной степени важны и нечисленные алгоритмы; они разработаны для таких задач, как, например, поиск в тексте заданного слова, планирование событий, сортировка данных в указанном порядке и т. п. Нечисленные алгоритмы оперируют с данными, которые не обязательно являются числами.
Структуры данных, применяемые в алгоритмах, могут быть чрезвычайно сложными. В результате выбор правильного представления данных чисто служит ключом к удачному программированию и может в большей степени сказываться на производительности программы, чем детали используемого алгоритма. Вряд ли когда-нибудь появится общая теория выбора структур данных. Самое лучшее, что можно сделать, — разобраться во всех базовых «кирпичиках» и собранных из них структурах. Способность приложить эти знания к конструированию больших систем — это прежде всего дело инженерного мастерства и практики.
Независимо от содержания и сложности любые данные в памяти ЭВМ представляются последовательностью двоичных разрядов, или битов, а их значениями являются соответствующие двоичные числа. Данные, рассматриваемые в виде последовательности битов, имеют очень простую организацию или, другими слонами, слабо структурированы. Для человека описывать и исследовать сложные данные в терминах последовательностей битов весьма неудобно. Более крупные и содержательные, нежели бит, «строительные блоки» для организации произвольных данных получаются на основе понятия «структуры данных».
Под
структурой данных в общем случае понимают
множество элементов данных и множество
связей между ними. Такое определение
охватывает все возможные подходы к
структуризации данных, но в каждой
конкретной
задаче используются те или иные его
аспекты. Поэтому вводится дополнительная
классификация структур данных,
направления которой соответствуют
различным аспектам их рассмотрения.
Прежде чем приступать к изучению
конкретных структур данных, дадим их
общую классификацию по нескольким
признакам. Понятие физическая структура
данных отражает способ физического
представления данных в памяти машины
и называется еще структурой хранения,
внутренней структурой или структурой
памяти. Рассмотрение структуры данных
без учета ее представления в машинной
памяти называется абстрактной или
логической структурой. В общем случае
между логической и соответствующей ей
физической структурами существует
различие, которое зависит от самой
структуры и особенностей той среды, в
которой она должна быть отражена.
Вследствие этого различия существуют
процедуры, осуществляющие отображение
логической структуры в физическую
и, наоборот, физической структуры в
логическую. Эти процедуры обеспечивают,
кроме того, доступ к физическим структурам
и выполнение над ними различных операций,
причем каждая операция рассматривается
применительно к логической или
физической структуре данных.
Различают простые (базовые, примитивные) структуры (типы) данных и интегрированные (структурированные, композитные, сложные). Простыми называются такие структуры данных, которые не могут быть расчленены на составные части, большие, чем биты. С точки зрения физической структуры важным является то обстоятельство, что в данной машинной архитектуре, в данной системе программирования всегда можно заранее сказать, каков будет размер выбранного простого типа и какова структура его размещения в памяти. С логической точки зрения простые данные являются неделимыми единицами.
Интегрированными называются такие структуры данных, составными частями которых являются другие структуры данных — простые или в свою очередь интегрированные. Интегрированные структуры данных конструируются программистом с использованием средств интеграции данных, предоставляемых языками программирования.
В зависимости от отсутствия или наличия явно заданных - связей между элементами данных следует различать несвязные структуры (векторы, массивы, строки, стеки, очереди) и связные структуры (связные списки).
Решение любой задачи с помощью компьютера — это совместная деятельность человека и ЭВМ. Чтобы человек и компьютер понимали друг друга, они должны «разговаривать» на одном языке — языке программирования.
