スタックやキューというものをよく聞きますが正直説明を受けても普通にそんなに苦なく配列で再現できそうな操作ですけど覚える必要ってあるんでしょうか?
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答7件
0
スタックやキューは概念であって、実装は配列であったり、リストであったりします。
なので、
そんなに苦なく配列で再現できそうな操作
は、正しいです。配列でスタックやキューを実現するのはよくあります。
投稿2016/01/12 14:43
総合スコア84557
0
スタックやらキューは概念ですからね・・・。例えばCなら、可変長引数の説明はスタックがわからないとできません。
でC++において、std::queue
とstd::stack
は「コンテナアダプター(containers adaptors)」という扱いになります。
http://www.cplusplus.com/reference/queue/queue/
なにかというと任意のコンテナ(std::arrayとかstd::vectorとかstd::deque)に対して適用する「概念」ということです。
コンテナ(データ構造)があり、アダプター(操作方法)があるわけです。
なので文字通り配列を使って実現しています。
投稿2016/01/15 04:24
編集2016/01/15 04:26総合スコア5850
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
こんにちは。
「覚える」「暗記する」などと気合を入れるまでもなく、「スタック」や「キュー」と見聞きして、データ構造や実装を思い浮かべられれば十分OKかと思います(配列でもリンクチェーンでも記憶してLIFOやFIFOでデータの出し入れが出来るように実装すればよし)
エンジニア同士での意思疎通で、どちらか一方がこの2つの言葉の意味がわからないと、面倒くさくなることが生じるでしょうね。
投稿2016/01/13 06:40
編集2016/01/15 05:55総合スコア728
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
ベストアンサー
現在コンピュータと呼ばれているもののほとんどが、ノイマン型のコンピュータで、スタックやキューで読み込む命令を制御しています。
教科書にキューやスタックがでてくるのは、コンピュータの動作原理の基礎という部分があるのと、これを理解しておくとあらゆることはその応用であるので基礎の基礎として学ぶべきと考えているからだと思います。
投稿2016/01/13 13:50
総合スコア2883
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
プログラミング言語にもよりますが。
配列が可変長でない場合は可変長の配列を作らないといけないですし、
キューだと先頭の要素を取り出した後で配列をどのような状態にするかを考えないといけません。
キューの場合は配列より連結リスト(リンクリスト)のほうが実装が楽な場合もあります。
そのほかにも、パフォーマンス効率の良い実装にするには、様々な工夫が必要です。
あとは互換性。
独自のデータ構造だと、ライブラリーのクラスやメソッドにパラメーターとして渡す場合などに不便です。
(スタックやキューをパラメーターとして渡すことはあまり無いですけどね。)
このような機能をキューとかスタックとかの名前で提供してくれていた方が、プログラミングが楽になります。
...
参考リンク:
データ構造 - Wikipedia
https://ja.wikipedia.org/wiki/%E3%83%87%E3%83%BC%E3%82%BF%E6%A7%8B%E9%80%A0
投稿2016/01/13 10:15
総合スコア9390
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。