私は最近、必要な質問を見ました。O(1) 空間でスタックを反転します。
1) スタックは必ずしも配列ではありません...インデックスにアクセスできません。
2) 要素数が不明です。
以下のコードを思いつきましたが、動作していnot convinced that it is O(1) space because i have declared "int temp" exactly n times
ますが、スタックに最初に n 個の要素があるとします)so it has taken O(n) space.
私が正しいかどうか教えてください。解決策を見つけるためのより良い方法はありますか?.
コード:
#include<bits/stdc++.h>
using namespace std;
stack<int>st;
void rec()
{
if(st.empty())
return;
int temp=st.top();
st.pop();
rec();
st.push(temp);
}
int main()
{
st.push(1);
st.push(2);
st.push(3);
st.push(4);
rec();
}