//Reverse the stack with fun() and fun1()
/*I am unable to understand what is being passed in function fun().
I am not sure about the arguement of type stack <int> &s.
Is it a whole stack being passed or just one node?*/
void fun1(stack<int> &s, int k)
{
if (s.empty())
{
s.push(k);
return;
}
int t = s.top(); s.pop();
fun1(s,k);
s.push(t);
}
**void fun(stack<int> &s)**
{
if (s.empty())
{
return;
}
int t = s.top(); s.pop();
fun(s);
fun1(s,t);
}
Программа пытается перевернуть стек, используя функции fun() и fun1(). Мой вопрос только в том, что стек аргументов & s берет адрес чего?Я пытаюсь перевернуть стек, используя рекурсию. Что передается в функции fun()? s - объект класса стек
В C++ символ & (в этом контексте) указывает * ссылку * на объект стека. (т. е. когда вы передаете s в fun(), это не делает копию s, а скорее ссылается на исходный объект). Возможно, это не то, что вы хотите для такой рекурсивной функции. –
Итак, вы программист C, изучающий C++, который еще не встречал ссылок? Вы, вероятно, захотите немного поработать ;-) – John3136
Попробуйте сохранить исполняемый код, не отменяя его с акцентом. Если вам нужно обратить внимание на что-то, используйте комментарий. – tadman