Предположим, у меня есть такой список:
[4, 5, 7, 2, 3, 1, 9]
Я хочу, чтобы обход был таким:
4, 9, 5, 1, 7, 3, 2
Может кто-нибудь поделиться решением для этого? Решением может быть языковая независимость c - даже с псевдокодом все в порядке.
Одно из решений, которое я имею в виду, состоит в создании элементов очереди с двумя окончаниями и очереди из альтернативных концов. Но проблема в том, что я хочу просмотреть этот список несколько раз, и удаление из очереди удалит эти элементы для будущего использования. Есть ли какое-либо другое решение, которое может помешать мне делать копию очереди каждый раз, прежде чем перейти в желаемом порядке?