私はスタックが初めてです。わかっているように、スタックに十分な領域がなく、要素をスタックにプッシュしたい場合、スタックはオーバーフロー状態になります。これは、配列の容量を定義する必要があるため、スタックの配列ベースの実装を使用するときに発生します。容量を超える要素をプッシュしたい場合は、オーバーフローが発生しますが、リンクリストをスタック実装に使用すると、スタックオーバーフローがどのように発生しますか?リンクリストでは、容量を定義しないで、ノードに動的にメモリを割り当てます。問題を認識できるように助けてください。前もって感謝します。スタック実装にリンクリストを使用すると、スタックオーバーフローはどのように発生しますか?
答えて
リンクされたリストでは、要素数の点で容量を定義する必要はありません。しかし、要素にはまだメモリが必要であり、メモリが枯渇する可能性があります。
異なる実装のメモリチャンクをスタックに割り当てる必要があると考えると、スタック実装をリストとして実行するとパフォーマンスが低下します(割り当て/割り当て解除が頻繁に行われるため)。スタックは非常に広範囲に使用されているため、実装の速度が遅くなるとおそらく禁止されます。
また、リストの管理は難しく、スタックを管理する必要があります。一度に1つ以上の要素を追加するか、または1つの操作でスタックを「短くする」(関数呼び出しから戻ったときなど、複数の要素を取る/忘れる)など単方向のリストは、終わり。
解決する問題はありますか?スタックオーバーフローは、大きなデータ構造が作成されるだけでなく、再帰が深すぎると発生する可能性があることに注意してください。
リンクリストを使用することをお勧めします。リンクされたリストにスタックオーバーフローはありません。そのため、リスト、スタックなどの配列実装ではなく、そのデータ構造を使用しています。 Linkedリストの実装は時間がかかります(ただし、事前定義されたライブラリを使用できます)。しかし、上記のようにのノードに動的にメモリを割り当てることは、のプロパティを持っているため、動的サイズのデータを保持するのに適しています。
これが役立つことを願っています!
ありがとう@Rahal。つまり、リンクされたリストを使用すると、スタックオーバーフローは発生しません。 – user2779650
@ user2779650:はい、そうです –
- 1. リンクリストによるスタックの実装
- 2. スタック検索でスタックオーバーフローが発生する
- 3. スタックのC:配列実装とスタックのリンクリスト実装で、この2つのコードの違いがなぜ発生するのですか?
- 4. スタックオーバーフローが発生するまでの残りのスタックのサイズ
- 5. スタックと単一リンクリストを実装する最良の方法
- 6. Quicksortの実装でスタックオーバーフローが発生するのはなぜですか?
- 7. このリンクリストの実装でエラーが発生しました
- 8. switch文を使用して文字列スタックを実装するにはどうすればよいですか?
- 9. 錆発生(例:num_cpus)はどのように実装されていますか?
- 10. 実装しようとするとiADエラーが発生する
- 11. なぜクイックソートのJDK実装でスタックオーバーフローが発生するのですか?
- 12. リンクリストを使用したキューの実装
- 13. 汎用ファクトリインターフェイスはどのように実装しますか?
- 14. 固定量ではなく、実行ごとにスタック使用量が異なると、スタックオーバーフローが発生するのはなぜですか?
- 15. 二重リンクリストの実装でNullPointerExceptionが発生する
- 16. リンクリストはどのようにポインタを使わずに実装されていますか?
- 17. スタックオーバーフローが発生しますか?
- 18. いつリンクリストとC++のスタックを使用するのですか
- 19. リンクリスト実装を使用してスタックから要素をポップできないのはなぜですか?
- 20. 独自の実装されたリンクリストを使用するとエラーが発生する
- 21. 数字を表示しようとするとGHCIでスタックオーバーフローが発生する
- 22. スタックオーバーフローのURLはどのように機能しますか?
- 23. どのように実装するにはSystem.Transactions.TransactionとEnterprise Library 5.0を使用しますか?
- 24. Rubyの実行スタックはどのように見えますか?
- 25. どのようにJavaを使用してFTPを実装するには?
- 26. Javaを使用してリンクリストのイテレータ実装とは何ですか?
- 27. socket.ioは認証をどのように実装しますか
- 28. 実装なしでgetApplicationContext()をどのように使用できますか?
- 29. スタックを作り直してスタックFIFOを取り消すキューを実装しようとしていますか?
- 30. CreativeSDKを実装しようとするとエラーが発生する
いいえ、私の好奇心。しかし、リンクされたリストが遅い場合は、スタックを実装するのに完璧なものになります。 – user2779650