◇
○スタック
スタックの説明
入れた逆順に取り出す First In Last Out
基本操作 Push データを入れる
Pop データを取り出す
Y
X X X
--- => --- => --- => --- => ---
PUSH X PUSH Y POP Y POP X
利用例
手続き呼出
「現在の処理(主たる)の流れを
中断して別の処理(部分の処
理)を行ないそのあとで戻る」
( コンピュータの中ではハードウェアで実現されている )
( 再帰的処理・再帰的手続き呼出 再帰的=recursive )
◇
スタックの例
逆ポーランド型電卓( dc コマンド )
12 34 + 56 * 「12 に 34 を足し(それに) 56 を掛ける」
(日本語型)
34 56
12 12 46 46 2576
--- => --- => --- => --- => --- => -----
12 34 + 56 *
P P PP P P PP P
U U OO+U U OO*U
S S PP S S PP S
H H H H H
Postscript 言語
◇
プログラム例(一部であり連続していない)
double stack[N], x, y;
int sp; /* stack pointer */
sp=0; /* 初期状態:スタックを空にする */
/* push x */
stack[sp]=x; sp=sp+1;
/* pop -> y */
sp=sp-1; y=stack[sp];
戻る