1.Лёгкая
Что такое узлы-братья (siblings) в дереве?
- AУзел и его родитель
- BУзлы без потомков
- CУзлы с общим родителем
- DУзлы на одной глубине в разных поддеревьях
2.Лёгкая
Какая структура данных используется для обхода дерева по уровням (level-order)?
- AОчередь
- BОчередь с приоритетом
- CСтек
- DХеш-таблица
3.Лёгкая
Как называется операция очереди, удаляющая элемент из начала?
- AInsert
- BEnqueue
- CDequeue
- DPush
4.Средняя
Как найти минимальный ключ в двоичном дереве поиска?
- AОбойти все листья и сравнить их
- BИдти от корня по правым потомкам, пока правого потомка не окажется
- CИдти от корня по левым потомкам, пока левого потомка не окажется
- DПосмотреть только на корень
5.Средняя
Зачем нужен сторожевой (фиктивный, sentinel) узел в связном списке?
- AЧтобы список был отсортирован
- BЧтобы упростить код, убрав особые случаи в голове или хвосте
- CЧтобы список не мог вырасти сверх фиксированного максимального числа узлов
- DЧтобы хранить число элементов
6.Средняя
Сколько узлов в идеальном (perfect) двоичном дереве высоты h, если высота считается в рёбрах?
- A2h
- Bh2
- C2h + 1
- D2h+1 − 1
7.Сложная
Динамический массив удваивается при заполнении. Почему многие реализации уменьшают его, только когда он заполнен на четверть, а не наполовину?
- AЧтобы массив оставался отсортированным
- BПотому что распределитель памяти может освобождать память только четвертями блока
- CПотому что уменьшение вдвое при половинном заполнении привело бы к потере элементов
- DЧтобы избежать повторных изменений размера, когда push и pop чередуются вблизи границы
8.Сложная
Удаление узла с двумя потомками из двоичного дерева поиска обычно выполняют так:
- AМеняют его местами с корнем
- BУдаляют всё поддерево
- CЗаменяют его in-order преемником (или предшественником) и удаляют тот узел
- DПерестраивают поддерево под ним с нуля и заново вставляют каждый содержавшийся в нём ключ
Ответы
- 1. C · Узлы с общим родителем
- 2. A · Очередь
- 3. C · Dequeue
- 4. C · Идти от корня по левым потомкам, пока левого потомка не окажется
- 5. B · Чтобы упростить код, убрав особые случаи в голове или хвосте
- 6. D · 2h+1 − 1
- 7. D · Чтобы избежать повторных изменений размера, когда push и pop чередуются вблизи границы
- 8. C · Заменяют его in-order преемником (или предшественником) и удаляют тот узел
Полные пошаговые решения: занимайтесь этой темой на examproblems.com.