- •Основные понятия структур
- •Концепция типа данных, простейшие типы данных, стандартные типы данных, органические типы (диапазоны)
- •Статические и полустатические структуры данных
- •2. 1. Массив.
- •2. 2. Запись, записи с вариантами.
- •2. 3. Стек.
- •5. Очередь
- •2. 7. Отображение
- •Динамические структуры данных
- •3.1. Односвязные списки, кольцевой список
- •3. 2. Двусвязный список, кольцевой двусвязный список
- •4. Рекурсивные алгоритмы
- •4. 1. Деревья, бинарные деревья, представление деревьев
- •4. 2. Основные операторы, используемые для работы с деревьями
- •4. 3. Алгоритм создания дерева бинарного поиска
- •4. 4. Прохождение бинарных деревьев
- •1. Прохождение в прямом порядке
- •3. Прохождение в обратном порядке
- •4. 5. Когда рекурсию использовать не нужно
- •4. 6. Рекурсивные программы, примеры
- •5. Поиск
- •5. 1. Линейный поиск
- •5. 2. Двоичный поиск
- •5. 3. Индексно-последовательный поиск
- •5. 3. Поиск в таблице
- •5. 4. Поиск прямой строки
- •Поиск по бинарному дереву
- •Алгоритм кнута, Морриса и Пратта
- •5. 6. Алгоритм Боуера и Мура
- •Сортировка. Необходимые определения и классификация сортировок. Сортировки прямого включения и выбора. Их эффективность Необходимые определения и классификация сортировок.
- •Сортировка методом прямого включения
- •Эффективность алгоритма сортировки прямого включения
- •Сортировка методом прямого выбора
- •Эффективность алгоритма сортировки прямого выбора
- •Сортировка прямого обмена. Её эффективность
- •Эффективность алгоритма сортировки прямого обмена
- •Улучшенные методы сортировки. Быстрая сортировка. Её эффективность.
- •Быстрая сортировка
- •Принцип работы быстрой сортировки
- •Пример работы быстрой сортировки
- •Блок-схема быстрой сортировки
- •Улучшенные методы сортировки. Сортировка шелла. Её эффективность. Сортировка шелла
- •Принцип работы сортировки шелла и необходимые расчёты для её реализации
- •Пример расчёта последовательности расстояний для малых массивов
- •Пример работы сортировки шелла
- •Принцип работы пирамидальной сортировки
- •Пример работы пирамидальной сортировки
- •Представление графов
- •Нахождение кратчайших путей между парами вершин
Статические и полустатические структуры данных
Понятие «структура» входит в программу не только на уровне общего ее построения, но и предусматривает структурирование самой логики и оперируемых данных. Прежде всего, данный принцип нашел свое применение в типизации языка Паскаль, т.е. наделении его строгой системой предопределенных типов, комбинируя которые программист мог создавать свои собственные типы, причем уже не только простые, но и представляющие собой сложные конструкции – структуры данных.
Моделирование приводило к абстракции, т.е. к упрощенному (или обобщенному) представлению объектов, их свойств и отношений в зависимости от поставленной задачи.
Некоторые такие абстрактные объекты из-за своих полезных качеств стали необычайно «популярны». Они получили точную спецификацию и с тех пор стали называться абстрактными типами данных (или АТД).
Т.е. абстрагирование от многих несущественных факторов, в том числе и от того, как этот абстрактный объект представить в ЭВМ.
Этим собственно и занялись языки программирования, которые и являются неким переходником между идеями человека и возможностями машины.
К АТД относятся: массив, запись, записи с вариантами, стек, очередь, дек, отображение
2. 1. Массив.
Массив – это одно- или многомерная таблица данных одного типа. В одномерном случае каждая ячейка таблицы имеет свой индекс. В многомерном набор индексов рис. 1.
В11 |
В12 |
… |
В1n |
В21 |
В22 |
… |
В2n |
В31 |
В23 |
… |
В3n |
В41 |
В24 |
… |
В4n |
Рис. 1 – Структура массива
Массив называют структурой данных со случайным доступом, поскольку к любому элементу массива можно обратиться, просто указав его индексы, т.е. все элементы одинаково доступны в любой момент времени. Массив определяется, прежде всего, общим типом его элементов и их количеством.
Количество элементов массива, определяется количеством индексов и диапазоном их изменения.
Для доступа к элементу двумерного массива необходимо значения пары индексов (номер строки и номер столбца, на пересечении которых находится элемент). На физическом уровне двумерный массив выглядит так же, как и одномерный (вектор), причем трансляторы представляют массивы либо в виде строк, либо в виде столбцов
2. 2. Запись, записи с вариантами.
Запись – связанная структура, состоящая из нескольких элементов (полей) разных (можно и одинаковых) типов.
Запись очень похожа на одномерный массив, но с элементами разных типов, кроме того, доступ к конкретному полю записи осуществляется уже не через индекс, а указанием идентификатора (т.е. имени) этого поля.
Например:
Запись студентов
324 |
Петров С. П |
КТАС |
07-К-ПО1 |
Эту запись можно представить в логическом и графическом виде рис. 2, рис.3
номер |
фамилия |
факультет |
группа |
Рис. 2 - Логическая структура
рис. 3 – графическая структура
Элемент записи может включать в себя записи. В этом случае возникает сложная иерархическая структура данных
Операции над записями:
Прочтение содержимого поля записи.
Занесение информации в поле записи.
Все операции, которые разрешаются над полем записи, соответствующего типа