Получить реверс списка внутри функции, которая возвращает список

Поэтому мне нужно получить элементы под нечетными индексами в обратном порядке.

Я написал функцию, чтобы получить нечетные элементы индекса, но я не уверен, как заставить их возвращаться в обратном порядке.

Я должен сделать это в одной функции, и она должна быть рекурсивной.


person Ashleyy    schedule 08.04.2015    source источник
comment
Не могли бы вы показать свой код? Что вы пробовали? Какой язык программирования вы собираетесь использовать?   -  person abarisone    schedule 08.04.2015


Ответы (1)


Что вы делаете, так это берете первый элемент, а затем добавляете остальную часть результата. Если вы сделаете это наоборот, вы получите перевернутый список. Таким образом, вы можете получить обратный список, просто заменив аргументы append.

ПРИМЕЧАНИЕ. Код стоит O(n^2) и потребляет стек для каждого рекурсивного вызова. Поэтому лучше сделать его хвостовым рекурсивным, тогда используемая вами реализация Scheme оптимизирует его, чтобы он не потреблял стек.

person Takashi Kato    schedule 08.04.2015
comment
Я только что понял это раньше и использовал то же решение, которое вы упомянули здесь! Спасибо за вашу помощь. Не могли бы вы немного подробнее остановиться на хвостовой рекурсии? Может быть, с подсказками кода? - person Ashleyy; 08.04.2015
comment
stackoverflow.com/questions/310974/ это вопрос содержит все ответы :) - person Christophe De Troyer; 08.04.2015