Stack / Tumpukan
2
Contoh
Tumpukan kertas
Tumpukan buku tabungan
Tumpukan piring
Operasi Stack
5
Aplikasi
Perintah undo dalam editor teks
Pengecekan keseimbangan kurung buka dan
tutup dalam sebuah operasi
Evaluasi ekspresi aritmetik bentuk postfix
Mengubah ekspresi infix ke postfix
Menemukan palindrome : “Able was I ere I saw
Elba”, “A man, a plan, a canal: Panama”, “Abba”,
“Kasur Rusak”
Menelusuri pemanggilan method
Implementasi rekursi
Implementasi Stack
Ada 2
Implementasi contiguous
Masukan data disimpan dalam array
Data diakses menggunakan indeks
Implementasi linked
Masukan data disimpan dengan linked list
Data diakses menggunakan reference
Contiguous Stack
Stack Stack
0 Tom bottom 0
1 Tom bottom
John 1 John
2 Mary 2 Mary
3 Sue 3 Sue
4 Jim 4 Jim
5 Rick 5 Rick top
6
7
Bob 6 --
8
Barb 7 --
Diana top 8 --
9 -- 9 --
10 -- 10 --
11 -- 11 --
12 -- 12 --
13 -- 13 --
Setelah 9 data dimasukkan ke stack Setelah 3 data di pop
Stack – Implementasi Array
Elemen ditambahkan dari indeks terkecil
menuju ke lebih besar
Memiliki variabel untuk menyimpan posisi
indeks elemen teratas
Implementasi Kelas Stack
class Stack
{
private int maxSize;
private char[ ] dataStack;
private int top;
J
P C
A
H
push(“A”)
APLIKASI
Deteksi Kurung Seimbang
(
((
(((
((
(((
((((
(((
((
( seimbang
Infix, postfix
Infix.
Familiaruntuk pengguna
Mudah mengubah urutan operasi dengan
meletakkan / menghapus kurung
Postfix
Lebih mudah untuk program.
Tidak diperlukan kurung dan operator
mendahului motasi
a + (b - c) * d abc-d*+
a+b-c*d ab+cd*-
Menghitung ekspresi
Mengevaluasi postfix