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