忍者ブログ

!===== implicit none

設計と実装を同時にやるのは…やめようね!!(血涙)

キューとスタック

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

コメント

ただいまコメントを受けつけておりません。

キューとスタック

記事タイトルの通りですが・・・


先日応用情報の試験勉強をしていたときのこと、キューとスタックのどっちがLIFOでどっちがFIFOなのか全然覚えられねえや、どうしようや、と悩んでいた。
というか同じ悩みは基本情報を受けたときにもあったのだが、なあなあで放置してそのままにしていたのだった。


とりあえず応用情報の試験当日に、適当にググって出て来た情報から覚えやすそうなものをピックアップして、

・キュー = レジ待ち → つまりFIFOや!!!
・スタック → その反対、つまりLIFOや!!!!

ということだけ覚えて臨んだものの、結局のところ試験に影響はなかった記憶。
そして応用情報が終わった今更になってそのことを思い出して、もう少し詳しく調べてみるか?と気になってきた次第なのであった。
なお記事編集現時点で試験結果は未発表だが、そんなレベルでも試験自体はギリギリ受かったくさい・・・
果たしてそんな程度の知識・理解しかないのに受かってしまう資格に意味があるのだろうか・・・?いや通ったのであれば会社からお小遣い貰えるから個人的には文句はないすけど・・・

閑話休題。
とりあえず例のごとく目の前の四角い箱に聞いてみる。
するとそもそもの話、

キュー = queue → 順番待ちの列
スタック = stack → 皿や本、草などの積み重なったモノ

という一般的な英単語が元々あった模様。
はえーなるほど、そもそもそういう英単語が昔からあって、FIFO、LIFOにそれぞれ対応する英単語を当てはめたみたいすね。

いやちょっと待てや。じゃあそのままFIFO、LIFOのままでええやないかい!!!!
そっちの方がLast, Firstついてるからわかりやすいやろがい!!!
なんでわざわざ別の表現を付けてしまうねん!!!
非英語圏の人間からしたらqueue, stackなんて言われてもピンと来ないし、それを知らないと影響が出るような問題を作んなや!!!!

まあそんな道理の欠片もないゴミクレームはおいておいて・・・
英語版wikipediaによると、stackはAlan M. Turing博士1946年頃に使い始めたとのこと。
ん?Turingってもしかしてかのチューリングマシンの人!?はーやっぱ頭いい人は色々すごいっすね(白目)

じゃあqueueはというと、ちょっとよくわかんなかった。
たかだか数十分調べた程度ではそれっぽい情報が出てこないか、ワイ小の英語読解力の問題か・・・
cue:合図(演技開始など)、ビリヤードのキュー、のキューとは異なる語句として扱われるようだが、その一方でqueueは中世(古代?)フランス語のcue, coe:キュー、当時は尻尾という意味らしい、を語源とするみたいな情報もあって、じゃあその古代フランス語のcueと現代英語のcueはスペル同じなのに意味違うんか?となったあたりでもうこれ諦め。
つか完全に明後日の方向だったのでヤメだヤメ!!

ともかくよく例に挙がるメモリの構造がstackであること、直感的にはハードの低レベルな部分の方が歴史的に古いことを考えると、stackが先にアイデアとして存在していて、情報分野の語句としても使われていたんじゃないでしょうか。
んで後からどっかでFIFOの概念が定式化されて、それにqueueという単語を当てはめた感じ?

結局最初の話に戻ると、どうすればqueue, stackとFIFO, LIFOを結び付けられんねんというところだけど、誰にでも覚えやすい方法はなさそうかなあ。
個人的には今回記事を書くにあたって知った、それぞれの一般的な英単語の意味と、その例となるイメージ画像、特にstack → 皿や本が積み重なっているようす、で覚えられそうだけど、、

うーん、正道としてはやっぱり元々の英単語と結びつけけるしかないのかなあ

queue → 列車待ちで並んでいる人


stack → 物理的に積み上げられた本や皿



という感じだろうか・・・いやびみょい、微妙すぎる。。。

PR

コメント

プロフィール

HN:
NoName
性別:
男性
職業:
おっさん
趣味:
無趣味
自己紹介:
すーぱーぷろぐらまー()になりたい

スポンサードリンク

スポンサードリンク

P R

リンク