3

私は最近、必要な質問を見ました。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();
}
4

2 に答える 2