Anda di halaman 1dari 13

STRUKTUR DATA

Pert – 5
Double Stack
Struktur Stack
Istilah struktur stack:
 Push : Simpan, masuk, insert, tulis
 Pop : Ambil, keluar, delete, baca

Ada 2 Jenis Stack :


 Single Stack
 Double Stack
Double Stack – LIFO “L & R”

Double Stack juga menerapkan prinsip LIFO dan dapat dipresentasikan dengan
Array satu dimensi, maupun dengan Structure.
Prinsip
 AWAL (Inisialisasi)
 PUSH1 (Push untuk stack1)
 POP1 (Pop untuk stack1)
 PUSH2 (Push untuk stack2)
 POP2 (Pop untuk stack2)
Kondisi Double Satack

n
Algoritma PUSH1
Algoritma PUSH1 (mengisi Stack1)
Periksa apakah Stack1 BISA DIISI

if (Top2 – Top1 > 1) // Periksa (T= S1&S2 bisa PUSH), ( F=Else


)
{
Top1 = Top1 + 1;
}
S[Top1] = x;
else
cout<<“Stack Penuh”;
Algoritma POP1
Algoritma POP1 (mengambil isi Stack1)
Periksa apakah Stack1 ADA ISINYA

if (Top1 > -1) // S1 ada isi (T=bisa POP), ( F=Else )

{
x = S[Top1];
}
Top1 = Top1 – 1;
else
cout<<“Stack Kosong”;
Algoritma PUSH2
Algoritma PUSH2 (mengisi Stack2)
Periksa apakah Stack2 BISA DIISI
if (Top2 – Top1 > 1) // S1&S2 bisa di isi (T=bisa PUSH), ( F=Else )

{
Top2 = Top2 – 1;
}
S[Top2] = x;
else
cout<<“Stack Penuh”;
Algoritma POP2
Algoritma POP2 (mengambil isi Stack2)
Periksa apakah Stack2 ADA ISINYA
if (Top2 < n) // S2 ada isi (T= bisa POP), F Else )
{
x = S[Top2];
}
Top2 = Top2 + 1;
else
cout<<“Stack Kosong”;
POINTER PADA STACK
DEKLARASI
Int S[5];
Int *Top, *BatasAtas, *BatasBawah;
BatasBawah = &S[-1];
Top = BatasBawah;
BatasAtas = &S[4];

Algoritma PUSH
if(Top<BatasAtas)
Top++;
*Top = x; // yang ditunjuk Top diisi x
Else
cout<<“Stack Penuh”;

Algoritma POP
if(Top>BatasBawah)
x= *Top; // x diisi nilai ditunjuk oleh Top
Top--;
Else
cout<<“Stack Kosong”;
Latihan
1. Susunlah program untuk menginput data dari
keyboard terus menerus hingga stack1 penuh
2. Susunlah program untuk menginput data dari
keyboard terus menerus hingga stack2 penuh
3. Susunlah program untuk menghapus stack1
hingga kosong
4. Susunlah program untuk menghapus stack2
hingga kosong
Rubah Tugas Silngle Stack – Double Stack
Tampilan run awal stack kosong

Pilih menu PUSH

Pilih menu PUSH, jika stack penuh muncul“Stack Penuh”


Pilih menu POP, data terambil jika data stack sebelumnya sudah terisi, tampil menu pilihan

Pilih menu POP, jika data stack kosong tampil “Stack Kosong” tampil menu pilihan

Jika pilih selain menu pilihan tampil “Pilihan tidak tersedia” tampil kembali menu
pilihan dan jika pilih menu 3 akan tampil “Pilihan tidak tersedia” proses selesai (
keluar )

Anda mungkin juga menyukai