
- •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. Внешние деревья поиска
1.Классификация структур данных
Под структурой данных в общем случае понимают множество элементов данных и множество связей между ними.
Структура данных определяет набор переменных, возможно, различных типов данных, объединенных определенным образом.
Классификация
Различаются ПРОСТЫЕ (базовые, примитивные) структуры (типы) данных и ИНТЕГРИРОВАННЫЕ (структурированные, композитные, сложные).
Простыми называются такие структуры данных, которые не могут быть расчленены на составные части, большие, чем биты.
Интегрированными называются такие структуры данных, составными частями которых являются другие структуры данных - простые или в свою очередь интегрированные.
В зависимости от отсутствия или наличия явно заданных связей между элементами данных следует различать НЕСВЯЗНЫЕ структуры (векторы, массивы, строки, стеки, очереди) и СВЯЗНЫЕ структуры (связные списки).
По признаку изменчивости различают структуры СТАТИЧЕСКИЕ, ПОЛУСТАТИЧЕСКИЕ, ДИНАМИЧЕСКИЕ.
2.Операции над структурами
Над любыми структурами данных могут выполняться четыре общие операции:
создание,
уничтожение,
выбор (доступ),
обновление.
Эти операции обязательны для всех структур и типов данных.
Операция создания заключается в выделении памяти для структуры данных. Память может выделяться в процессе выполнения программы или на этапе компиляции.
Операция уничтожения структур данных противоположна по своему действию операции создания. Операция уничтожения помогает эффективно использовать память.
Операция выбора используется программистами для доступа к данным внутри самой структуры.
Форма операции доступа зависит от типа структуры данных, к которой осуществляется обращение.
Метод доступа - одно из наиболее важных свойств структур, особенно в связи с тем, что это свойство имеет непосредственное отношение к выбору конкретной структуры данных.
Операция обновления позволяет изменить значения данных в структуре данных.
3. Структурность данных и технологии программирования
Знание структуры данных позволяет организовать их хранение и обработку максимально эффективным образом - с точки зрения минимизации затрат как памяти, так и процессорного времени. Другим преимуществом является возможность структурирования сложного программного изделия.
При структурировании больших программных изделий возможно применение подхода, основанного на структуризации алгоритмов и известного, как "нисходящее" проектирование или "программирование сверху вниз", или подхода, основанного на структуризации данных и известного, как "восходящее" проектирование или "программирование снизу вверх".
Одним чрезвычайно продуктивным технологическим приемом, связанным со структуризацией данных является инкапсуляция. Cконструированный новый тип данных - "строительный блок" - оформляется таким образом, что его внутренняя структура становится недоступной для программиста - пользователя этого типа.
Технологии программирования — технологии разработки программ для ЭВМ, которые будут использоваться людьми для решения различных задач на ЭВМ.