コンテンツにスキップ

スタック

出典: フリー百科事典『ウィキペディア(Wikipedia)』
push(プッシュ) およびpop(ポップ) のスタックの単純な表現
スタックの単純な表現

: stack1LIFO: Last In First Out; FILO: First In Last Out

1970

[]


2 (push)  (pop) PushPop

使PushPop使 (LIFO: Last In First Out) 

[]


PushPopPeeknO(n)O(1)

[]


n O (n )O (1) 使


[]


FIFO (First In First Out)  (deque) 使使使使

[]


2





40043

[]


使

2

Push



Pop

Push



使PA-RISC

10001000Pop

1000999998100010011002PopPush



Dup(licate)

 pop 2 push 2

Peek

 pop Top 

Swap  Exchange

2

Rotate

 nn = 3 123231 left rotateright rotate

right rotate
apple                         banana
banana    ===right rotate==>  cucumber
cucumber                      apple
cucumber                      apple
banana    ===left rotate==>   cucumber
apple                         banana

使

 push push 使 push 使 push 

 pop  push Push 

コールスタック[編集]


使

[]


使x86PDP-1168000使JSRR6A7使RISC使ABIIntel 8087PIC



Computer Cowboys MuP21

Harris RTX line

Novix NC4016


[]




使LISP push  pop conspushcdrpop使

応用例[編集]

式評価と構文解析[編集]


使Hewlett-Packard使使

((1 + 2) * 4) + 3 
1 2 + 4 * 3 +

使

 push 

2 pop 

 push 


入力 操作 オペランドスタック
1 オペランドをPush 1
2 オペランドをPush 1, 2
+ 加算 3
4 オペランドをPush 3, 4
* 乗算 12
3 オペランドをPush 12, 3
+ 加算 15

15

[]


 (branch and bound) 使使使使使使使

プログラミング言語処理系の実装[編集]


使/使使使



C使

セキュリティ[編集]





[]




使ForthPostScriptMindForth

スタックマシン[編集]


 B5000B5000ALGOL使

x86使

p-Javax87

使Lua5

[]


使L1988IEEE Computer Society

関連項目[編集]