Я учусь на среднесрочный период.Профессор дал нам экзамены в прошлом семестре, но у них нет никаких решений.
Вот три вопроса, которые я хочу проверить:
1) Какое из следующего утверждения (s) имеют значение true (можно выбрать несколько вариантов):
(a) Итерация по двусвязному списку в обратном порядке более эффективна по времени, чем перебор по односвязному списку в обратном порядке.
(b) Вдвойне связанные списки занимают больше места, чем односвязные списки.
(c) Удаление узла в односвязном списке менее эффективно, чем удаление узла в двусвязном списке.
(d) Односвязные и двусвязные списки более эффективны по памяти, чем массив.
Я думаю, что (а) верно, потому что у вас есть «предыдущая» ссылка в двусвязном списке,что позволяет вам сделать обратный ход по линейному времени.Я не уверен в этом, хотя.Я думаю (б) является ложным.Я думаю (с) верно, потому что вы можете просто сделать что-то вроде node.prev = node.next
в двусвязном списке, но вы не можете сделать это в односвязном списке.Но опять же я не уверен в этом.(г) я думаю, что это неверно.У меня нет веской причины, но кажется, что массивы занимают меньше места, чем связанный список, интуитивно.
Может кто-нибудь сказать мне, если я ошибаюсь по любому из них?
Вот второй вопрос:
2) Какие из следующих операторов приведения используют Идентификацию типа времени выполнения?
Возможны варианты const_cast
, static_cast
, dynamic_cast
или reinterpret_cast
, и только один является правильным.
Я думаю, что ответ dynamic_cast
.Я уверен, что я прав в этом вопросе, но я просто хочу перепроверить.
Вот последний вопрос:
3) Что из этого не может быть объявлено как шаблон?Ответ один из следующих: глобальные функции, классы, функции-члены или макросы.
Я действительно не очень уверен насчет 3, потому что, когда я в Google, что-то подходит для шаблона с каждымиз них.Я был бы очень признателен за помощь в решении этой проблемы.