-1
//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()関数を使用してスタックを逆転しようとしています。私の質問は、引数スタック&は何のアドレスを取るだけですか?再帰を使用してスタックを逆転しようとしています。 function fun()で何が渡されていますか? sはクラススタックのオブジェクトです
C++では、&(このコンテキストでは)はスタックオブジェクトへの*参照*を示します。 (つまり、sをfun()に渡すと、sのコピーは作成されず、元のオブジェクトへの参照が渡されます)。これは、このような再帰関数に対して必要なものではないかもしれません。 –
あなたはCプログラマーで、まだリファレンスを満たしていないC++を学んでいますか? – John3136
コードを実行可能にしておきますが、強調してコードを実行しないでください。あなたが何かに注意を引く必要がある場合は、コメントを使用してください。 – tadman