意外と知らない真実。
このようなことが起こっていたようです。
抽象データ型としてのスタックは、ノード(何らかのデータを持ち、別のノードを指し示すことができる構造)のコンテナ(データを集めて格納する抽象データ型の総称)であり、2つの基本操作プッシュ(push)とポップ(pop)を持つ。Pushは指定されたノードをスタックの先頭(トップ)に追加し、既存のノードはその下にそのまま置いておく。Popはスタックの現在のトップのノードを外してそれを返す。よく使われる比喩として、食堂にあるバネが仕込まれた台に皿や盆を積み重ねておく様子がある。そのようなスタックでは利用者は一番上(トップ)の皿だけにアクセスすることができ、それ以外の皿は隠されている。新たに皿が追加される(Pushされる)と、その新しい皿がスタックのトップとなり、下にある皿を隠してしまう。皿をスタックから取る(Popする)と、それを使うことができ、二番目の皿がスタックのトップとなる。二つの重要な原則がこの比喩で示されている。第一は後入れ先出し (LIFO: Last In First Out) の原則である。第二はスタックの中身が隠されているという点である。トップの皿だけが見えているため、三番目の皿がどういうものかを見るには一番目と二番目の皿を取り除かなければならない。
他の操作
多くのスタック実装では「Push」と「Pop」以外の操作をサポートしている。スタック長の値を返す操作が最も一般的だが、その他にも「現在のスタックのトップのノードを返すが、それをスタックから取り除かない」Peek操作なども良く実装される。
実装
n個の要素のスタックが必要とするメモリ容量はO(n)、つまりスタック長に比例する。個々の操作が一定時間O(1)で完了する実装は配列や線形リストを使っても簡単に実現できる。
多くのコンピュータ上ではポインタを用いて実装され、関数呼び出しでの引数渡しに加え、関数の呼び出し元 (caller)アドレスの退避、割り込み発生時のプログラムカウンタ退避、レジスタ退避などに利用される。
引用『ウィキペディア(Wikipedia)』
相互リンク
デリヘル デリヘル 長岡 愛知県 デリヘル 宮城県 デリヘル デリヘル 天神 デリヘル ススキノ 大阪デリバリーヘルス 大塚 デリヘル 柏デリヘル