Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АрхитектураБиологияГеографияДругоеИностранные языки
ИнформатикаИсторияКультураЛитератураМатематика
МедицинаМеханикаОбразованиеОхрана трудаПедагогика
ПолитикаПравоПрограммированиеПсихологияРелигия
СоциологияСпортСтроительствоФизикаФилософия
ФинансыХимияЭкологияЭкономикаЭлектроника

Сложные структуры данных

Читайте также:
  1. I. Создание базы данных
  2. III. Анализ результатов психологического анализа 1 и 2 периодов деятельности привел к следующему пониманию обобщенной структуры состояния психологической готовности.
  3. Анализ структуры себестоимости продукции, структуры налогов велючаемых в себестоимость продукции и факторов ее определяющих
  4. Б) Исследование структуры числовых представлений
  5. База данных MySQL
  6. Байт – машинное слово минимальной размерности, адресуемое в процессе обработки данных.
  7. В) Изменение внутренней структуры

I. Массивы

Совокупность однородных элементов данных, хранящихся в ОЗУ в смежных ячейках памяти, обращение к элементам которой производится по имени всей структуры с указанием индекса.

 

Характеристики:

1) Имя

2) Тип компоненты

3) Начальное и конечное значение индекса.

 

Свойства:

1) Каждая компонента может быть явно обозначена.

Для любого языка имя массива – адрес первого элемента.

2) а. Массив можно задать как статический, тогда под него резервируется память на этапе трансляции согласно типу и количеству элементов.

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

Первым(статическим) способом невозможно создать массив переменных размеров.

 

Хранение в памяти:

 

- хранение по строкам

 

- хранение по столбцам

 

II. Последовательность

 

Совокупность неименованных элементов данных, обращение к которой происходит по имени всей структуры.

Пример: файл.

III. Стеки

 

Стек – это линейная однородная структура данных, определенного ограниченного размера, организованная по принципу: «пришедший последним – обслуживается первым».

 
 

 


Рис.13

Рассмотрим два типа организации стека:

· Сплошное – заранее отводится массив определенного размера. Запись в стек (проталкивание) и считывание (выталкивание) производится из одного и того же места – верхушки стека.

 
 

 


Рис.14

Недостаток сплошного хранения элементов стека: заранее надо знать размер массива.

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

 

 

Рис.15

 

IV. Очереди

 

Очередь – линейная структура однородных данных переменных размеров, организованная по принципу: «пришедший последним – обслуживается последним».

 

 

 

Рис.16

Обслуживание ведется с обоих концов структуры, поэтому необходимо знать индексы начала и конца.

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

 

V. Деки

 

Дек – структура, где включение и исключение элементов производится с обоих концов.

 
 

 

 


Рис.17

Бывают деки с ограниченным входом:

 
 

 

 


Рис.18

и ограниченным выходом:

 

 

 

 


Рис.19

 

VI. Деревья

 

Деревья – нелинейная структура данных. отображающая иерархичность в алгоритме.

Дерево (корневое дерево) – непустое конечное множество элементов таких, что существует один узел. называемый корнем, а остальные разбиты на m поддеревьев.

Корень является предком всех потомков. Узлы, не имеющие потомков, называются листьями.

 
 

 

 


Рис.20

Бинарное дерево – это частный случай дерева, когда у каждого предка не более одного потомка. В памяти ЭВМ дерево представляется так:

 

 
 

 

 

Рис.21

 

Если дерево бинарное, то каждый узел хранит содержимое и два адреса соседей. Если в дереве хотя бы где-нибудь три связи, то любой узел должен состоять из 4 частей (содержимое и еще три адреса).

 

 

VII. Графы

Граф – конечное непустое множество вершин и множество упорядоченных ребер, соединяющих эти вершины.

 

 

 

 

 

 

 

 

 

 

 

 

 

Рис. 22

 

1) S: (1, 2) – инцидентно первой вершине.

2) Вершины 1 и 2 – смежные.

3) Ребра, инцидентные одной и той же вершине – смежные.

4. Степень вершины – число ребер, выходящих из этой вершины

 

5. - граф с петлей.

 

6. Путь, соединяющий вершины V1 и Vn – последовательность вершин такая, в которой V1 и Vn соединены ребрами.

Например: V1-2 = {1, 3, 4, 2} = 3

7. Путь замкнут, если V1 = Vn

8. Замкнутый путь, у которого все ребра различны, зовется циклом.

9. Простой цикл – замкнутый путь, все вершинны которого, кроме V1 и Vn – попарно различны.

10. Гамильтоновый граф – граф, в котором существует простой цикл, содержащий все вершины в графе, но необязательно все ребра.

11. Расстояние между вершинами – длина кратчайшего пути, соединяющего эти вершины.

12. Если все вершины соединены ребрами, то граф называется полным.

13. Граф называется связанным, если для любой пары вершин существует соединяющий их путь.

 

Хранение в памяти:

Информация о графе хранится в матрице смежности.

 

Пример матрицы для рис. 22:

 

         
         
         
         
         

 

VIII. Орграфы

 

Орграф вместо ребер имеет дуги.

 

Вершина W достижима из вершины U, если существует путь, идущий из U в W.

 

Деревом называется связанный граф без циклов.

Корневое дерево – связанный орграф без циклов, если:

1) Имеется одна вершина, именуемая корнем, в которую не идет ни одной дуги.

2) К каждой вершине, отличной от корня, идет ровно одна дуга.

3) Потомки всякой вершины упорядочены.

 

Все понятия определяются так же, как и у графа, только с учетом ориентации дуг.

 

IX. Взвешенный граф

 

Если у ребра указан вес, то такой граф называется взвешенным.

 

 

Таблица смежности взвешенного графа называется таблицей стоимости:

 

         
         
         
         
         

 

 

Такой граф – модель для задачи коммивояжера:

Для совершения сделок следует объехать М городов и вернуться в родной город, но при этом в каждом городе побывать только один раз. Требуется найти самый дешевый маршрут (вес ребра обозначает стоимость передвижения).

 


Дата добавления: 2015-11-30; просмотров: 24 | Нарушение авторских прав



mybiblioteka.su - 2015-2024 год. (0.014 сек.)