Структуры данных: лист заданий с ответами

Бесплатный лист заданий для печати по теме «Структуры данных»: 8 задач от простых до экзаменационного уровня, с ответами. Распечатайте его или сохраните как PDF.

Для преподавателей: можно бесплатно печатать, копировать и использовать на занятиях. Каждый новый лист содержит новые значения и собственные ответы. Будем благодарны за ссылку на ExamProblems на странице вашего курса.

Имя: ____________________   Дата: ____________

1.Лёгкая

Что такое коллизия в хеш-таблице?

  1. AДва разных ключа отображаются в один и тот же индекс
  2. BДва одинаковых ключа хранятся дважды
  3. CКлюч вообще невозможно хешировать
  4. DВ таблице заканчивается память
2.Лёгкая

В двоичном дереве поиска значения в левом поддереве узла:

  1. AМеньше значения узла
  2. BБольше значения узла
  3. CРасположены в случайном порядке
  4. DРавны значению узла
3.Лёгкая

Где находится наименьший элемент двоичной min-кучи?

  1. AВ последней позиции массива
  2. BВ корне
  3. CВ каком-то листе, который придётся искать
  4. DВ самом левом листе
4.Средняя

У вас есть ссылка на узел в середине списка. В каком списке его можно удалить за O(1)?

  1. AВ динамическом массиве
  2. BВ двусвязном списке
  3. CВ отсортированном массиве
  4. DВ односвязном списке
5.Средняя

Как работает extract-min в двоичной min-куче?

  1. AУдаляют корень и сдвигают все элементы на одну позицию влево
  2. BПоследний элемент перемещают в корень и опускают вниз (sift down)
  3. CИщут новый минимум среди всех листьев
  4. DУдаляют последний элемент массива
6.Средняя

Очередь реализована двумя стеками: push в стек «in», pop из стека «out», который при опустошении заполняется из «in». Какова амортизированная стоимость одной операции?

  1. AO(n)
  2. BO(log n)
  3. CO(n²)
  4. DO(1)
7.Сложная

В кольцевом буфере front == rear может означать и «пуст», и «полон». Какой распространённый способ их различить?

  1. AХранить отдельный счётчик элементов или всегда оставлять одну ячейку свободной
  2. BХранить front и rear в одной переменной
  3. CВсегда очищать буфер, когда front равен rear, так что состояние — пустой
  4. DДелать размер буфера степенью двойки
8.Сложная

Удаление узла с двумя потомками из двоичного дерева поиска обычно выполняют так:

  1. AМеняют его местами с корнем
  2. BУдаляют всё поддерево
  3. CЗаменяют его in-order преемником (или предшественником) и удаляют тот узел
  4. DПерестраивают поддерево под ним с нуля и заново вставляют каждый содержавшийся в нём ключ

Ответы

  1. 1. A · Два разных ключа отображаются в один и тот же индекс
  2. 2. A · Меньше значения узла
  3. 3. B · В корне
  4. 4. B · В двусвязном списке
  5. 5. B · Последний элемент перемещают в корень и опускают вниз (sift down)
  6. 6. D · O(1)
  7. 7. A · Хранить отдельный счётчик элементов или всегда оставлять одну ячейку свободной
  8. 8. C · Заменяют его in-order преемником (или предшественником) и удаляют тот узел

Полные пошаговые решения: занимайтесь этой темой на examproblems.com.