Upload presentasi
Presentasi sedang didownload. Silahkan tunggu
1
STACK Yohana Nugraheni
2
Pengertian STACK STACK berarti tumpukan.
Konsep STACK digunakan dalam struktur data. A B C D TOP IN OUT Berlaku prinsip LIFO (Last In First Out)
3
Pengertian STACK Dalam Struktur Stack digunakan istilah :
PUSH : Simpan,Masuk,Insert,Tulis POP : Ambil,Keluar,Delete,Baca STACK ada 2 jenis : Single Stack Double Stack
4
Single Stack Single Stack dapat direpresentasikan menggunakan array satu dimensi. 25 12 1 17 2 15 33 3 4 5 6 7 8 9 S[10] TOP X
5
Prinsip dan Konsep Proses Single Stack
Prinsip proses Single Stack adalah : LIFO (Last In First Out) Proses pada Single Stack : AWAL (Inisialisasi) PUSH (Insert, Masuk, Simpan, Tulis) POP (Delete, Keluar, Ambil, Baca/Hapus)
6
Kondisi Single Stack Kondisi Stack ditentukan oleh posisi atau isi TOP. Kondisi Stack Posisi TOP KOSONG Top = -1 PENUH Top = n-1 BISA DIISI Top < n-1 ADA ISINYA Top > -1
7
Algoritma PUSH if (Top < n-1) { Top = Top + 1; S[Top] = x; } else
cout<<“Stack Penuh”;
8
Algoritma POP if (Top > -1) { x = S[Top]; Top = Top - 1; } else
cout<<“Stack Kosong”;
9
Contoh: PUSH Stack sampai penuh kemudian POP isi Stack sampai kosong
Buat program untuk menyiapkan array satu dimensi yang akan digunakan untuk mengisi Stack S sebanyak 5 elemen, bertipe integer. Input data dan PUSH ke Stack S. Proses input akan selesai setelah Stack penuh atau data yang diinputkan = 999. POP isi Stack kemudian cetak ke layar.
10
Double Stack Disebut juga Stack Ganda. TOP 1 TOP 2 25 12 1 17 2 3 4 5
1 17 2 3 4 5 6 50 7 8 44 9 Stack 1 Stack 2 -1 6 23 10 11 12 S[12] 2 TOP 1 8 TOP 2 X
11
Prinsip dan Konsep Proses Double Stack
Prinsip proses : LIFO (Last In First Out) baik untuk Stack1 maupun untuk Stack2 Proses pada Double Stack : AWAL (Inisialisasi) PUSH1 (Push untuk Stack1) POP1 (Pop untuk Stack1) PUSH2 (Push untuk Stack2) POP2 (Pop untuk Stack2)
12
Kondisi Double Stack Kondisi Stack Posisi TOP Stack1 KOSONG Top1 = -1
Top2 = n Stack PENUH (baik Stack1 maupun Stack2 tidak BISA DIISI) Top2 – Top1 = 1 Stack BISA DIISI (baik Stack1 maupun Stack2 BISA DIISI) Top2 – Top1 > 1 Stack1 ADA ISINYA Top1 > -1 Stack2 ADA ISINYA Top2 < n
13
Algoritma PUSH1 (mengisi Stack1)
Periksa apakah Stack1 BISA DIISI if (Top2 – Top1 > 1) { Top1 = Top1 + 1; S[Top1] = x; } else cout<<“Stack Penuh”;
14
Algoritma POP1 (mengambil isi Stack1)
Periksa apakah Stack1 ADA ISINYA if (Top1 > -1) { x = S[Top1]; Top1 = Top1 - 1; } else cout<<“Stack Kosong”;
15
Algoritma PUSH2 (mengisi Stack2)
Periksa apakah Stack2 BISA DIISI if (Top2 – Top1 > 1) { Top2 = Top2 - 1; S[Top2] = x; } else cout<<“Stack Penuh”;
16
Algoritma POP2 (mengambil isi Stack2)
Periksa apakah Stack2 ADA ISINYA if (Top2 < n) { x = S[Top2]; Top2 = Top2 + 1; } else cout<<“Stack Kosong”;
Presentasi serupa
© 2024 SlidePlayer.info Inc.
All rights reserved.