10/28/2009
FNA+MLK/IF2030
Stack
Stack: list linier yang:
dikenali elemen puncaknya (TOP)
aturan penyisipan dan penghapusan elemennya
tertentu:
Penyisipan selalu dilakukan "di atas" TOP
Penghapusan selalu dilakukan pada TOP
FNA+MLK/IF2030
Stack
TOP
TOP
BOTTOM
BOTTOM
FNA+MLK/IF2030
Pemakaian Stack
Pemanggilan prosedur
Perhitungan ekspresi aritmatika
Rekursifitas
Backtracking
dan algoritma lanjut yang lain
10/28/2009
FNA+MLK/IF2030
Definisi Fungsional
Jika diberikan S adalah Stack dengan elemen
ElmtS:
CreateEmpty
IsEmpty
IsFull
Push
Pop
10/28/2009
:S
: S boolean
FNA+MLK/IF2030
Definisi Fungsional
Definisi Selektor:
Jika S adalah sebuah Stack, maka
Top(S) adalah alamat elemen TOP, di mana
operasi penyisipan/penghapusan dilakukan
InfoTop(S) adalah informasi yang disimpan pada
Top(S)
10/28/2009
FNA+MLK/IF2030
10/28/2009
FNA+MLK/IF2030
FNA+MLK/IF2030
10/28/2009
FNA+MLK/IF2030
10
10/28/2009
FNA+MLK/IF2030
11
10/28/2009
FNA+MLK/IF2030
12
10/28/2009
FNA+MLK/IF2030
13
10/28/2009
FNA+MLK/IF2030
14
10/28/2009
FNA+MLK/IF2030
15
FNA+MLK/IF2030
16
Stack S
FirstToken
CT=A
EndToken=false
Operator(CT)=false
Push(S,CT)
AB*C/
NextToken
CT=B
EndToken=false
10/28/2009
Operator(CT)=false
Push(S,CT)
FNA+MLK/IF2030
TOP
Stack S
B
A
TOP
17
AB*C/
B
A
Stack S
TOP
Pop(S,Op2)
Pop(S,Op1)
Push(S, Hitung(Op1,Op2,CT))
NextToken
CT=*
EndToken=false
Operator(CT)=true
=A*B
AB*C/
C
=A*B
Stack
S
10/28/2009
NextToken
CT=/
EndToken=false
Operator(CT)=true
TOP
Stack S
Push(S,CT)
FNA+MLK/IF2030
=A*B/C
TOP
18
ABC^/DE*+AC*- ?
=B^C
D
=A/ (B^C)
=A/ B^C
E
D
=D*E
=A/ B^C
=A/ B^C
=A/ B^C+D*E
=A/ B^C+D*E
C
A
=A*C
=A/ B^C+D*E
=A/ B^C+D*E
10/28/2009
FNA+MLK/IF2030
19
PR
Modul pra-praktikum:
P-08.Stack
Bagian 1. Representasi Tabel Kontigu dengan
Alokasi Memori Statik
Bagian 2. Representasi Tabel Kontigu dengan
Alokasi Memori Dinamik
10/28/2009
FNA+MLK/IF2030
20