- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
サンプルコードを拝見するに、 スタックっちゅうデータ構造を実現してるみたいやね。 スタックっちゅうのは「後入れ先出し(LIFO:Last In First Out)」っていうのを実現するためのデータ構造で、 実生活でいうたら、そうやね、積ん読みたいなんを想像したらええんとちゃうかな? 積ん読って、取り出すときはいちばん上に積んだ本(要は最後に積んだ本) から取り出すやろ?そういうこっちゃねん。 で、サンプルコードの話やけど、 pushっていうんはスタックに格納するための関数、 popっていうんはスタックから取り出すための関数や。 で、スタックに AAA BBB CCC DDD EEE の順に格納してるから、 スタックの一番下にあるんがAAA そっから上へ向かって、順に BBB, CCC, DDD, EEEの順に格納しとるから、 EEEがスタックのいちばん上にあるねん。 それで、popでスタックから2回取り出しとるわけで、 その順番はいちばん上にあるEEE, その次に上にあるDDDの順、っていうわけや。 そやから、出力は EEE DDD っていう風になるねん。 ついでに言うとくと、スタックと対極にあるデータ構造をキュー(queue)っていうて、これは先入れ先出し(FIFO:First In First Out)の代表やね。実生活でいうと、 銀行でATMの利用を待ってる順番とか スーパー・コンビニなんかでレジ待ちしている順番を 思い浮かべたらええと思うわ。なんでかっていうたら、 通常、そういう行列って、先に並んだ人から処理されてくやろ?割り込みとかがなかったら。
その他の回答 (2)
- AsarKingChang
- ベストアンサー率46% (3467/7474)
PUSH&POPはJavaじゃなくても、 事実上すべてのプログラミング言語で使うから 覚えておいていいかも! 一言で言えば「積み木」 1,2,3,4,5って詰めば、 最初に取れるのは「5」だよね?って話。 もし、3を取りたいなら、4,5をどかさないといけない! つまり、縦一直線に山を作ってるのと同じよ! (ちなみ、複雑になると横の山が出来るツリー構造にもなるが) 実生活では、エレベーターと同じ! 急いでエレベーターに乗った人ほど「最後にしか降りれない」 最初に降りるのは「最後に乗った人よね?」 って事と同じよん
- kjm15986
- ベストアンサー率27% (26/93)
青線とは?
お礼
分かりやすくありがとうございます🙏🏻勉強になりました!