Rahmat Deddy Rianto Dako, ST, M.Eng Tumpukan Rahmat Deddy Rianto Dako, ST, M.Eng
definisi Tumpukan adalah ? Kumpulan data yang seolah-olah ada data yang diletakkan di atas data yang lain. Contoh : A atas B C D D E C F atas B definisi A menyisipkan menghapus
Penyajian tumpukan Tumpukan senarai Sifat tumpukan : Last In First Out (LIFO) Penyajian array/larik, (namun kurang tepat) Alasannya ? Banyaknya Elemen larik (statis), sedangkan elemen tumpukan bisa sangat bervariasi (dinamis) A B C D E F Penyajian tumpukan overflow
Penyajian tumpukan_2 Overflow perlu dicatat posisi ujung tumpukan Tumpukan rekaman (record) Const MaxElemen = 225; Type tumpukan = record Isi : array[1..MaxElemen] of integer Atas : 0..MaxElemen End; Var T : tumpukan; T.Atas = 5 {tumpukan = 5 elemen} T.Isi[1]…T.Isi[5] Jika ada data yg diambil T.Isi[4] elemen teratas Jika ada data yg ditambah T.Isi[6] elemen teratas Penyajian tumpukan_2
Operasi pada Tumpukan Operasi dasar Tumpukan : Push : menyisipkan data Pop : menghapus data Operasi pada Tumpukan
Operasi Push Penjelasan : Procedure PUSH (var T : Tumpukan; x : integer); Begin T.Atas := T.Atas + 1; T.Isi[T.Atas] := x End; Penjelasan : Prosedur ini akan menyiapkan tempat untuk x yang akan dipush ke dalam tumpukan, yaitu dengan menambah nilai medan T.Atas dengan 1 dan selanjutnya menyisipkan x ke dalam larik T.Isi Operasi Push
Operasi Pop Contoh program Begin Procedure POP (var T : Tumpukan); If T.Atas = 0 then Writeln(‘TUMPUKAN SUDAH KOSONG’) Else T.Atas := T.Atas - 1; end; Contoh program Operasi Pop
Implementasi tumpukan (notasi polish) Next Meeting