- •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. Внешние деревья поиска
24. Методы реализации очередей
Способы:
1. Массив (в виде массива и двух целочисленных переменных start и end.)
2. Связный список (основан на работе с динамической памятью.)
3. Реализация на двух стеках (построена из двух стеков S1 и S2).
25. Абстрактный тип данных «Дек». Методы реализации
Дек - это разновидность очереди, в которой включение и выборка элементов возможны с обоих концов.
Разновидности дека:
дек с ограниченным входом
и дек с ограниченным выходом.
Дек с ограниченным входом допускает включение элементов только на одном конце.
А дек с ограниченным выходом допускает выборку элементов только с одного конца.
Деки могут иметь как векторную, так и списковую структуру хранения.
Операции над деками такие же, как и над очередями.
При векторном способе хранения программная реализация операций достаточна сложна, она упрощается при представлении очереди в виде двунаправленного списка.
26. Строки: логическая структура, операции и представление в памяти
Строка - это линейно упорядоченная последовательность символов, принадлежащих конечному множеству символов, называемому алфавитом.
Представление в памяти
Некоторые языки программирования накладывают ограничения на максимальную длину строки, но в большинстве языков подобные ограничения отсутствуют.
Основные проблемы в машинном представлении строкового типа:
строки могут иметь достаточно существенный размер (до нескольких десятков мегабайтов);
изменяющийся со временем размер — возникают трудности с добавлением и удалением символов.
В представлении строк в памяти компьютера существует два принципиально разных подхода.
Массив символов.
Метод «завершающего байта».
Операции
получение символа по номеру позиции
конкатенация строк.
Производные операции
получение подстроки по индексам начала и конца;
проверка вхождения одной строки в другую (поиск подстроки в строке);
проверка на совпадение строк (с учётом или без учёта регистра символов);
получение длины строки;
замена подстроки в строке.
27. Деревья. Их обходы
Дерево - это совокупность элементов, называемых узлами, и отношений ("родительских"), образующих иерархическую структуру узлов.
Узлы как и элементы списков, могут быть элементами любого типа.
Путем из узла n1 в узел nk называется последовательность узлов n1, n2, …, nk, где для всех i, 1 ≤ i ≤ k, узел ni является родителем узла ni+1.
Длиной пути называется число, на единицу меньшее числа узлов, составляющих этот путь. Если существует путь из узла а в b, то в этом случае узел а называется предком узла b, а узел b - потомком узла а.
Узел, не имеющий истинных потомков, называется листом.
Высотой узла дерева называется длина самого длинного пути из этого узла до какого-либо листа. Высота дерева совпадает с высотой корня.
Глубина узла определяется как длина пути от корня до этого узла.
Если порядок сыновей игнорируется, то такое дерево называется неупорядоченным, в противном случае дерево называется упорядоченным.
Существует несколько способов обхода (прохождения) всех узлов дерева. Обход узлов дерева равнозначен упорядочиванию по какому-либо правилу этих узлов.
Три наиболее часто используемых способа обхода дерева называются
обход в прямом порядке,
обход в обратном порядке
и обход во внутреннем порядке (симметричным обходом).
