Мне нужно реализовать эту функцию таким образом, чтобы она возвращала n-й элемент из стека без использования вспомогательного стека (или любой другой структуры данных) и в конце концов все еще имела стек в своем исходном состоянии, используя рекурсию?
Мне удалось реализовать его, но мое решение не оставляет стек в его первоначальном состоянии.
template <class Type>
Type getNth( stack<Type> & s, int n)
{
if(n == 1)
{
return s.top();
}
else
{
s.pop();
return getNth(s, n - 1);
}
}