Структура данных это форма хранения и представления

Скачать презентацию Структура данных это форма хранения и представления Скачать презентацию Структура данных это форма хранения и представления

Слайды. Структура данных.pptx

  • Количество слайдов: 25

Структура данных – это форма хранения и представления информации. В языках программирования понятие Структура данных – это форма хранения и представления информации. В языках программирования понятие "структуры данных" тесно связано с понятием "типы данных". Любые данные, т. е. константы, переменные, значения функций или выражения, характеризуются своими типами

 Информация по каждому типу однозначно определяет: 1. структуру хранения данных указанного типа, т. Информация по каждому типу однозначно определяет: 1. структуру хранения данных указанного типа, т. е. выделение памяти и представление данных в ней, с одной стороны, и интерпретацию двоичного представления, с другой; 2. множество допустимых значений, которые может иметь тот или иной объект описываемого типа; 3. множество допустимых операций, которые применимы к объекту описываемого типа.

 Операции над структурами данных Над всеми структурами данных могут выполняться четыре операции: Создание Операции над структурами данных Над всеми структурами данных могут выполняться четыре операции: Создание Уничтожение Выбор Обновление.

Операция создания • Операция создания заключается в выделении памяти для структуры данных. Память может Операция создания • Операция создания заключается в выделении памяти для структуры данных. Память может выделяться в процессе выполнения программы при первом появлении имени переменной в исходной программе или на этапе компиляции. • Операция уничтожения структур данных противоположна по своему действию операции создания.

СТРУКТУРЫ ДАННЫХ • Классификация структур данных может быть выполнена по различным признаками. • По СТРУКТУРЫ ДАННЫХ • Классификация структур данных может быть выполнена по различным признаками. • По сложности: • простые • интегрированные.

Структурированные (интегрированные, композитные, сложные) Такие структуры данных, составными частями которых есть другие структуры данных Структурированные (интегрированные, композитные, сложные) Такие структуры данных, составными частями которых есть другие структуры данных - простые или, в свою очередь, интегрированные. Интегрированные структуры данных конструируются программистом.

По способу представления • Физическая и логическая. • Физическая структура данных - это способ По способу представления • Физическая и логическая. • Физическая структура данных - это способ физического представления данных в памяти компьютера. • Логическая или абстрактная структура - это рассмотрение структуры данных без учета его представления в машинной памяти.

 • Операция выбора используется программистами для доступа к данным внутри самой структуры. • • Операция выбора используется программистами для доступа к данным внутри самой структуры. • Форма операции доступа зависит от типа структуры данных, к которой осуществляется обращение. • Операция обновления позволяет изменить значения данных в структуре данных.

По способу представления • Физическая и логическая. • Физическая структура данных - это способ По способу представления • Физическая и логическая. • Физическая структура данных - это способ физического представления данных в памяти компьютера. • Логическая или абстрактная структура - это рассмотрение структуры данных без учета его представления в машинной памяти.

Структуры (связные, нелинейные) • Несвязные структуры характеризуются отсутствием связей между элементами структуры. • Связные Структуры (связные, нелинейные) • Несвязные структуры характеризуются отсутствием связей между элементами структуры. • Связные структуры характеризуются наличием связи. • Примерами несвязных структур есть векторы, массивы, строки, стеки, очереди; примеры связных структур - связные списки. • Нелинейные структуры - многосвязные списки, дерева, графы.

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

По изменчивости • По изменчивости: статические, полустатические, динамические. • Изменчивость, то есть изменение числа По изменчивости • По изменчивости: статические, полустатические, динамические. • Изменчивость, то есть изменение числа элементов и связей между элементами структуры. • Статические - к этой группе относят массивы, множества, записи, таблицы. • Полустатические - это стеки, очереди, деки, дерева. Динамические - линейные и разветвленные связные списки, графы, дерева.

По виду памяти • По виду памяти, используемой для сохранности данных: структуры данных для По виду памяти • По виду памяти, используемой для сохранности данных: структуры данных для оперативной и для внешней памяти. • Структуры данных для оперативной памяти - это данные, размещенные в статической и динамической памяти компьютера. • Структуры данных для внешней памяти называют файловыми структурами или файлами. • Примерами файловых структур есть последовательные файлы, организованные разделами, В- деревья.

Классификация взаимосвязи между элементами сложных структур • Линейные – – – Массив Список Связанный Классификация взаимосвязи между элементами сложных структур • Линейные – – – Массив Список Связанный список Стек Очередь Хэш-таблица

Иерархические Двоичные деревья N-арные деревья Иерархический список Сетевые Простой граф Ориентированный граф Табличные Таблица Иерархические Двоичные деревья N-арные деревья Иерархический список Сетевые Простой граф Ориентированный граф Табличные Таблица реляционной базы данных Двумерный массив Другие

Линейные структуры данных • Элемент линейной структуры данных характеризуется порядковым номером или индексом в Линейные структуры данных • Элемент линейной структуры данных характеризуется порядковым номером или индексом в линейной последовательности элементов.

Массив • Массив – это в статическая линейная структура однотипных данных, оптимизированная для операций Массив • Массив – это в статическая линейная структура однотипных данных, оптимизированная для операций поиска элемента по его индексу. • Однозначное местоположение элемента в памяти обеспечивается именно однотипностью элементов в массиве и определяется произведением его индекса на размер памяти, занимаемой одним элементом. • Линейный массив. Адрес(элемент(index)) = размер_ячейки * index.

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

Связанный список • Связанный список – это вариант обычного линейного списка, оптимизированный для операций Связанный список • Связанный список – это вариант обычного линейного списка, оптимизированный для операций добавления и удаления элементов. • Оптимизация заключается в том, что элементы связанного списка не обязаны в памяти располагаться друг за другом. • Порядок элементов определяется ссылкой на первый элемент (не обязан быть в самом начале выделенной для списка памяти) и последовательностью ссылок на остальные элементы списка. • Связанный список.

Стек • Стек – это динамическая линейная структура данных, для которой определены всего две Стек • Стек – это динамическая линейная структура данных, для которой определены всего две операции изменения набора элементов: добавление элемента в конец и удаление последнего элемента. Еще говорят, что стек реализует принцип LIFO (Last in, First Out) – последним пришел и первым ушел. Например, в ходе выполнения программного кода, вычислительная машина при необходимости вызвать процедуру или функцию сначала заносит указатель на место ее вызова в стек, чтобы при завершении выполнения ее кода корректно вернуться к следующей после точки вызова инструкции. Такая структура данных называется стеком вызовов подпрограмм.

Очередь – очень похожая на стек, динамическая структура данных, с той лишь разницей, что Очередь – очень похожая на стек, динамическая структура данных, с той лишь разницей, что она реализует принцип FIFO (First in, First out) – первым пришел и первым ушел.

Хэш-таблица • Хэш-таблица – наиболее сложный из динамических линейных структур данных тип. • Хэш-таблица Хэш-таблица • Хэш-таблица – наиболее сложный из динамических линейных структур данных тип. • Хэш-таблица оптимизирована для быстрого поиска элементов за счет вычисления адреса элемента, как значения хэш-функции. • Аргументом хэш-функции является некий ассоциированный с элементом ключ, например, его порядковый номер.

Иерархические структуры данных • Иерархические структуры данных • Элемент в иерархической структуре данных характеризуется Иерархические структуры данных • Иерархические структуры данных • Элемент в иерархической структуре данных характеризуется ссылкой на вышестоящий в иерархии элемент (или ссылками на нижестоящие элементы) и (необязательно) порядковым номером в линейной последовательности своего уровня (иерархические списки).

Деревья • Деревья – динамическая иерархическая структура данных, представленная единственным корневым узлом и его Деревья • Деревья – динамическая иерархическая структура данных, представленная единственным корневым узлом и его потомками. • Максимальное количество потомков каждого узла и определяет размерность дерева.

Порядок посещения элементов каждого узла, начиная с корня • прямой или префиксный {узел, левое Порядок посещения элементов каждого узла, начиная с корня • прямой или префиксный {узел, левое поддерево, правое поддерево}; • • обратный или постфиксный {левое поддерево, правое поддерево, узел}; • • симметричный или инфиксный {левое поддерево, узел, правое поддерево};