Tumpukan (stack) adalah kumpulan data yang disusun secara berurutan dengan prinsip LIFO (last in first out), di mana data baru ditambahkan di bagian atas tumpukan dan data lama dihapus dari bagian atas. Terdapat dua operasi dasar pada stack yaitu push untuk menambahkan data dan pop untuk menghapus data dari bagian atas. Stack digunakan untuk mengecek kalimat polindrom dengan melakukan operasi push dan pop secara berurutan
2. Defenisi :
Secara sederhana, tumpukan bisa
diartikan sebagai suatu kumpulan data
yang seolah-olah ada data yang diletakan
diatas data yang lain. Satu hal yang perlu
kita ingat adalah bahwa kita bisa
menambah (menyisipkan) data, dan
mengambil (menghapus) data lewat ujung
yang sama, yang disebut sebagai ujung
atas tumpukan (top of stack).
3. A
B
C
D
Dari gambar ini kita bisa
mengatakan bahwa
kotak B ada diatas kotak
A dan ada dibawah
kotak C. Gambar
dibawah ini hanya
menunjukkan bahwa
dalam tumpukan kita
hanya bisa menambah
atau mengambil sebuah
kotak lewat satu ujung,
yaitu ujung bagian atas
4. Maximum 5
4
3
2
1
0
Stack S
Isi [1]
Isi [2]
Isi [3]
Isi [4]
Isi [5]
Deklarasi Struktur Data
Stack = Record/Data
Isi : array[1..n] of Tipe Data
Atas : integer
End
5. Operasi
Operasi dasar yang dilakukan Dalam Stack ada dua yaitu :
1. Menambah Komponen (Push)
2. Menghapus Komponen (Pop)
Operasi Push
Operasi Push adalah Menambah elemen kedalam stack S, dimana penambahan
dapat dilakukan jika stack itu belum penuh.
Stack dikatakan penuh Jika posisi atas sudah berada pada posisi N
(If S.atas = n then stack penuh)
Push( x,s) adalah Memasukkan x kedalam Stack S
14. POP(S)
Pop(s) adalah menghapus elemen dari stack, dimana elemen yang dihapus
adalah elemen yang terakhir Masuk (LIFO Last In First Out) atau elemen
penghapusan, dimana proses penghapusan dapat dilakukan jika stack tidak
dalam keadaan Kosong
If S.Atas > 0 then stack tidak kosong
Dimana Setiap melakukan penghapusan, maka posisi yang paling atas akan
berkurang 1 (S.Atas = S.Atas -1)
Procedure Pop( S: Stack)
If S.atas>0 then
Write S.isi[S.atas]
S.Atas= S.Atas – 1
Else
Stack Kosong
Fi
15. Pop(s)
Procedure Pop( S: Stack)
If S.atas>0 then
Write S.isi[S.atas]
S.Atas= S.Atas – 1
Else
Stack Kosong
Fi
Stack S
Atas = 5
16. Pop(s)
Procedure Pop( S: Stack)
If S.atas>0 then
Write S.isi[S.atas]
S.Atas= S.Atas – 1
Else
Stack Kosong
Fi
Stack S
Atas = 4
17. Pop(s)
Procedure Pop( S: Stack)
If S.atas>0 then
Write S.isi[S.atas]
S.Atas= S.Atas – 1
Else
Stack Kosong
Fi
Stack S
Atas = 4
18. Pop(s)
Procedure Pop( S: Stack)
If S.atas>0 then
Write S.isi[S.atas]
S.Atas= S.Atas – 1
Else
Stack Kosong
Stack S
Atas = 3
19. Pop(s)
Procedure Pop( S: Stack)
If S.atas>0 then
Write S.isi[S.atas]
S.Atas= S.Atas – 1
Else
Stack Kosong
Stack S
Atas = 0