(余分な)データ構造を使用せずにスタックを逆転するにはどうすればよいですか?任意の提案や疑似コードが役立つ可能性があります。私は努力しており、実行可能な解決策を見つけることができませんでした。ここの問題は私もスタックの大きさではありません。私が何かを作ることを少なくとも進めることができると知ったら、事前に感謝します。データ構造を使用しない逆スタック
5
A
答えて
6
follows:のように2回再帰することができます。
void insert_at_bottom(node **stack, int data)
{
if(isempty(*stack)){
push(stack,data);
return;
}
int temp=pop(stack);
insert_at_bottom(stack,data);
push(stack,temp);
}
void rev_stack(node **stack)
{
if(isempty(*stack)) return;
int temp = pop(stack);
rev_stack(stack);
insert_at_bottom(stack,temp);
}
3
再帰を使用して簡単に行うことができます。最大許容スタックサイズは、最大再帰深度によって制限されます。いくつかのコード:
public void reverse(Stack st) {
int m = (int)st.Pop();
if (st.Count != 1) {
reverse(st);
}
Push(st , m);
}
public void Push(Stack st , int a) {
int m = (int)st.Pop();
if (st.Count != 0) {
Push(st , a);
}
else {
st.Push(a);
st.Push(m);
}
}
関連する問題
- 1. スタックとデータ構造
- 2. データ構造:スタックは
- 3. Cのスタックのデータ構造
- 4. Redisを使用して永続スタック・データ構造を実装する
- 5. ポインタを使用しない再帰的なデータ構造
- 6. モナドを使用したデータ構造
- 7. Javaのスタック構造用ダイナミックアレイを作成
- 8. Mod_Rewrite逆URL構造
- 9. Java - 利用可能なデータ構造を利用するか新しいデータ構造を作成する
- 10. スタジアム用データ構造
- 11. メモリ内のデータ構造を使用
- 12. jsonのデータを使用したFoodクラスの適切な構造
- 13. 明示的なデータ構造と明示的なデータ構造
- 14. 使用するPythonデータ構造
- 15. 弾性データ構造BIデータ構造
- 16. iOS CFデータ構造とNSデータ構造
- 17. C#JSON.NET - 異常なデータ構造を使用する応答を逆シリアル化する
- 18. Reduxは永続的なデータ構造を使用していますか?
- 19. どのデータ構造を使用すればいいですか
- 20. 借用ライブラリのデータ構造
- 21. プログラミングコンテスト用のPythonデータ構造
- 22. Cassandraのスプリングデータに複雑なデータ構造を使用する
- 23. ジャンクションを使用してツリー構造のJSONの値を逆シリアル化する
- 24. このデータ構造の使い方は?
- 25. 階層構造を表すデータ構造
- 26. RestSharpを使用したC#構造体へのJSON配列の逆シリアル化
- 27. HTMLを使用して構造化データを表示
- 28. MFC ::構造体を使用してデータを渡す
- 29. 構造とスイッチを使用した意図しないループ
- 30. スタックを使用してルビのリンクリストを逆転する
スタック自体はデータ構造なので、これを使用できますか? – corsiKa
現在のスタックのすべての要素をポップし、別のスタックにプッシュすることができます。それがあなたに合っているかどうかは分かりません。 – svs
スタックはどのように実装されていますか?リンクされたリストを持つ独自の実装の場合は、ポインタの方向を逆にします。 – chill