Тест по информатике по теме: алгоритмы и структуры данных

Тема 3. Связные и кольцевые списки

1

Какое преимущество связного списка перед массивом?

динамическое изменение размера

быстрый доступ по индексу

меньший расход памяти

При удалении элемента из кольцевого списка

список разрывается

в списке образуется дыра

список становится короче на один элемент

Что содержит каждый узел двусвязного списка?

данные, указатель на следующий, указатель на предыдущий

только данные

только один указатель

Зачем в кольцевых списках используется sentinel-узел?

для упрощения обработки граничных случаев

для хранения дополнительной информации

для ускорения поиска по индексу

Что происходит при вставке нового элемента в начало односвязного списка?

новый элемент указывает на старый первый

новый элемент указывает на NULL

все элементы сдвигаются

Как создать новый элемент списка с информационным полем D?

p = getnode

p = getnode;
info(p) = D

p = getnode;
ptr = lst

В чём недостаток односвязного списка по сравнению с двусвязным?

невозможно эффективно перемещаться назад

занимает больше памяти

сложнее реализовать вставку в начало

Для чего используется указатель в кольцевых списках?

для ссылки на следующий элемент

для запоминания номера сегмента расположения элемента

для ссылки на предыдущий элемент

для расположения элемента в списке памяти

Какова сложность поиска элемента в односвязном списке?

O(n)

O(1)

O(log n)

Сколько указателей используется при программировании односвязного кольцевого списка?

1

2

сколько угодно

Где находится конец у кольцевого списка?

его нет, последний элемент указывает на первый

последний элемент указывает на NULL

зависит от реализации

В каких направлениях можно перемещаться в кольцевом двунаправленном списке?

в обоих

влево

вправо

Какой список позволяет эффективно вставлять элементы в середину при наличии указателя?

двусвязный

массив

стек

Где удобнее всего использовать кольцевой список?

в циклических очередях и повторяющихся процессах

в стековых вычислениях

в индексных таблицах

Как освободить память от удаленного из списка элемента?

p = getnode

ptr(p) = nil

freenode(p)

p = lst

Как создать пустой элемент с указателем p?

p = getnode

info(p)

freenode(p)

ptr(p) = lst

Чем отличается кольцевой список от линейного?

в кольцевом списке последний элемент является одновременно и первым

в кольцевом списке указатель последнего элемента пустой

в кольцевых списках последнего элемента нет

в кольцевом списке указатель последнего элемента не пустой

Сколько указателей используется в конструкции узла односвязного списка?

1

2

сколько угодно

Что произойдёт, если в кольцевом списке потерять указатель на голову?

доступ ко всему списку становится невозможным

список сам восстановится

создастся новый список