- •Билет 1. Типы и структуры данных
- •Диапазонные
- •Статические
- •Динамические
- •Перечислимые
- •Предопределенные
- •Билет 2. Простые типы. Операции. Типизация.
- •Билет 3. Массивы
- •Билет 4. Записи
- •Билет 5. Объединения
- •Билет 6. Множества
- •Билет 7. Последовательности
- •Билет 9. Стеки
- •Билет 10.Очереди
- •Линейный список, сложность операции o(1)
- •Билет 11. Динамические структуры данных.
- •Билет 12. Деревья. Общие определения
- •Билет 13. Двоичные деревья
- •Билет 14. Деревья поиска
- •Билет 15. Авл-сбалансированные деревья
- •Билет 16. Б-деревья
- •Билет 17. Дб- и сдб-деревья.
- •Билет 18. Характеристики сбалансированных деревьев.
- •Билет 19. Дерево оптимального поиска.
- •Билет 20. Splay-дерево
- •Splay (расширение)
Линейный список, сложность операции o(1)
Второй способ основан на работе с динамической памятью. Очередь представляется в качестве линейного списка, в котором добавление/удаление элементов идет строго с соответствующих его концов.
Преимущества данного метода: размер очереди ограничен лишь объёмом памяти.
Недостатки: сложнее в разработке; требуется больше памяти; при работе с такой очередью память сильнее фрагментируется; работа с очередью несколько медленнее.
Билет 11. Динамические структуры данных.
Массивы, структуры, простые типы и пр. называют статическими. Однако существует множество задач, где нужны более сложные структуры данных. Для таких задач характерно, что не только значения, но и структура переменных меняется при вычислении. Поэтому их называют динамическими структурами. Естественно, компоненты таких структур – на определенном уровне разрешения - являются статическими, т.е. принадлежат одному из фундаментальных типов данных.
Динамическая структура данных характеризуется тем что:
Каждой динамической структуре данных сопоставляется статическая переменная типа указатель (ее значение – адрес этого объекта), посредством которой осуществляется доступ к динамической структуре. Сами динамические величины не требуют описания в программе, поскольку во время компиляции память под них не выделяется. Во время компиляции память выделяется только под статические величины. Указатели – это статические величины, поэтому они требуют описания. Необходимость в динамических структурах данных обычно возникает в следующих случаях.
Динамические структуры, по определению, характеризуются отсутствием физической смежности элементов структуры в памяти, непостоянством и непредсказуемостью размера (числа элементов) структуры в процессе ее обработки. Поскольку элементы динамической структуры располагаются по непредсказуемым адресам памяти, адрес элемента такой структуры не может быть вычислен из адреса начального или предыдущего элемента. Для установления связи между элементами динамической структуры используются указатели, через которые устанавливаются явные связи между элементами. Такое представление данных в памяти называется связным. Достоинства связного представления данных – в возможности обеспечения значительной изменчивости структур:
Вместе с тем, связное представление не лишено и недостатков, основными из которых являются следующие:
Последний недостаток является наиболее серьезным и именно им ограничивается применимость связного представления данных. Если в смежном представлении данных для вычисления адреса любого элемента нам во всех случаях достаточно было номера элемента и информации, содержащейся в дескрипторе структуры, то для связного представления адрес элемента не может быть вычислен из исходных данных. Дескриптор связной структуры содержит один или несколько указателей, позволяющих войти в структуру, далее поиск требуемого элемента выполняется следованием по цепочке указателей от элемента к элементу. Поэтому связное представление практически никогда не применяется в задачах, где логическая структура данных имеет вид вектора или массива – с доступом по номеру элемента, но часто применяется в задачах, где логическая структура требует другой исходной информации доступа (таблицы, списки, деревья и т.д.). Порядок работы с динамическими структурами данных следующий:
Классификация динамических структур данных Во многих задачах требуется использовать данные, у которых конфигурация, размеры и состав могут меняться в процессе выполнения программы. Для их представления используют динамические информационные структуры. К таким структурам относят:
Они отличаются способом связи отдельных элементов и/или допустимыми операциями. Динамическая структура может занимать несмежные участки оперативной памяти. Динамические структуры широко применяют и для более эффективной работы с данными, размер которых известен, особенно для решения задач сортировки. |
|