- •1.Классификация структур данных
- •2.Операции над структурами
- •3. Структурность данных и технологии программирования
- •4. Целочисленные типы
- •5. Вещественные типы
- •6. Битовые типы
- •7. Логический тип
- •8. Символьный тип
- •9. Перечислимый тип
- •10. Интервальный тип
- •11. Указатели
- •12. Массивы
- •13. Свободные массивы
- •14. Треугольные и разреженные матрицы
- •15. Множества
- •16. Записи
- •17. Абстрактный тип данных «Список»
- •18. Методы реализации списков
- •19. Двунаправленные списки
- •20. Абстрактный тип данных «Стек»
- •21. Методы реализации стеков
- •22. Применение стеков при разработке приложений
- •23. Абстрактный тип данных «Очередь»
- •24. Методы реализации очередей
- •25. Абстрактный тип данных «Дек». Методы реализации
- •26. Строки: логическая структура, операции и представление в памяти
- •27. Деревья. Их обходы
- •28. Помеченные деревья и деревья выражений
- •29. Абстрактный тип данных «Дерево»
- •30. Методы реализации деревьев
- •31. Двоичные деревья. Методы их представления
- •32. Коды Хаффмана
- •33. Абстрактный тип данных «Множество»
- •34. Абстрактный тип данных с операторами множеств
- •35. Методы реализации абстрактного типа данных «Множество»
- •36. Словари. Методы их реализации
- •37. Структуры данных основанные на хеш-таблицах
- •38. Оценка эффективности хеш-функций
- •39. Очереди с приоритетами. Методы их реализации
- •40. Реализация очереди с приоритетами частично упорядоченными деревьями
- •41. Деревья двоичного поиска. Методы их реализации
- •42. Нагруженные деревья. Методы их реализации
- •43. Реализация множеств посредством сбалансированных 2-3 деревьев
- •45. Задача наибольшей общей подпоследовательности
- •44. Множества с операторами merge и find. Методы их реализации
- •46. Сбалансированные и несбалансированные деревья поиска
- •48. Методы представления графов
- •49. Внешняя сортировка. Основные характеристики сортировок методом слияний
- •50. Алгоритм прямого слияния
- •51. Алгоритм естественного слияния
- •52. Сбалансированное многопутевое слияние
- •53. Многофазная сортировка
- •54. Хранение данных в файлах
- •55. Внешние деревья поиска
12. Массивы
Массив - именованный набор однотипных переменных, расположенных в памяти непосредственно друг за другом, доступ к которым осуществляется по индексу.
Элемент массива - это есть элемент вектора, который сам по себе тоже является элементом структуры.
Для доступа к элементу двумерного массива необходимы значения пары индексов (номера строки и столбца).
13. Свободные массивы
Свободными называют двухмерные массивы, размер каждой из строк которых может быть различным.
одномерный массив указателей, число элементов n которого равно числу строк переменной длины,
и n одномерных массивов различной длины.
Таким образом, массив указателей имеет фиксированную длину, значит, фиксировано и число строк свободного массива. Память под каждую строку свободного массива запрашивается динамически.
Массив указателей, U имеет n элементов, каждый из которых содержит адреса векторов-строк массива.
Свободные массивы используются для представления других, более сложных структур.
К недостаткам можно отнести потребность в дополнительной памяти под массив указателей и многократное обращение к ОС для получения памяти.
14. Треугольные и разреженные матрицы
Треугольная матрица — квадратная матрица, в которой все элементы ниже или выше главной диагонали равны нулю.
Свойства
Определитель треугольной матрицы равен произведению элементов на её главной диагонали.
Множество всех верхнетреугольных матриц с элементами из кольца k образует алгебру относительно операций сложения, умножения на элементы кольца и перемножения матриц. Аналогичное утверждение справедливо для нижнетреугольных матриц.
Разреженная матрица — это матрица с преимущественно нулевыми элементами.
15. Множества
В языках программирования
Множество – это структурированный тип данных, представляющий собой набор взаимосвязанных по какому-либо признаку или группе признаков неповторяющихся объектов, которые можно рассматривать как единое целое.
Каждый объект в множестве называется элементом множества.
Все элементы множества должны принадлежать одному из скалярных типов, кроме вещественного. Этот тип называется базовым типом множества. Базовый тип задается диапазоном или перечислением.
Размер множества ограничен некоторым предельно допустимым количеством элементов.
Стандарт языка определяет операции над множествами, таковыми в Паскале являются:
объединение (+),
пересечение (*),
разность (-),
проверка принадлежности элемента множеству (in).
Предусмотрены также операции сравнения множеств =, <>, <=, >=, например, А<=В - операция проверки того, является ли А подмножеством В.
В языке Си структура типа «множество» не предусмотрена.
16. Записи
Запись представляет из себя структуру данных последовательного типа, где элементы структуры расположены один за другим, как в логическом, так и в физическом представлении. Запись предполагает множество элементов разного типа. Элементы данных в записи часто называют полями записи. Логическая структура записи может быть представлена как в графическом виде, так и в табличном. Элемент записи может включать в себя записи. В этом случае возникает сложная иерархическая структура данных.
Операции над записями:
1. Прочтение содержимого поля записи.
2. Занесение информации в поле записи.
3. Все операции, которые разрешаются над полем записи, соответствующего типа.
