Materi Stack and Queue
Materi Stack and Queue
(Dengan Array)
Struktur Data Linear
Adalah kumpulan komponen-komponen yang tersusun
membentuk satu garis linear.
Stack: struktur data linear dimana penambahan atau
pengurangan komponen dilakukan di satu ujung saja (LIFO).
Queue: struktur data linear dimana penambahan
komponen dilakukan di satu ujung, sementara
pengurangan dilakukan di ujung lain (FIFO).
Kedua struktur tersebut merupakan struktur data abstrak
dimana implementasi pada tingkat lebih rendah dapat
menggunakan struktur sequential (array) atau struktur
berkait (linear linked-list).
Stack
Operasi-operasi dasar:
Operasi Keterangan
Push digunakan untuk menambah data pada Stack (pada
tumpukan paling atas).
Pop digunakan untuk mengambil data pada Stack (pada
tumpukan paling atas).
IsEmpty fungsi yang digunakan untuk mengecek apakah Stack
masih kosong.
IsFull fungsi yang digunakan untuk mengecek apakah Stack
sudah penuh.
Peek melihat data paling atas dari Stack
Infix: 3 + 4 - 5
Pengkalkulasian Infix oleh Manusia
(lanjutan 2)
Infix: 2+4*5
Pengkalkulasian Infix oleh Manusia
(lanjutan 3)
Infix: 3*(4+5)
Penerjemahan Infix ke Postfix
Infix: A+B-C
Penerjemahan Infix ke Postfix
(lanjutan 1)
Infix: A+B*C
Penerjemahan Infix ke Postfix
(lanjutan 2)
Infix: A*(B+C)
Penerjemahan Infix ke Postfix
(lanjutan 3)
Infix: A+B*(C-D)
Penerjemahan Infix ke Postfix
(lanjutan 4)
Infix: A+B-C
Penerjemahan Infix ke Postfix
(lanjutan 5)
Infix: A+B*C
Penerjemahan Infix ke Postfix
(lanjutan 6)
A*(B+C)
Queue
Operasi-operasi dasar:
Operasi Keterangan
EnQueue digunakan untuk menambah data pada Queue (pada urutan
paling belakang (ekor)).
Jika indek kepala sama dengan indek ekor maka Queue kosong
sehingga method isEmpty() adalah :
public boolean isEmpty() {
return (kepala ==ekor);
}
Queue penuh jika penerus indek ekor sama dengan indek
kepala. Dengan demikian method isFull() adalah :
public boolean isFull() {
int next;
if(ekor == max-1)
next=0;
else next = ekor+1;
return (next == kepala);
}
Circular Queue
(lanjutan 2)
Method untuk melihat data paling depan dari Queue, yaitu method
peek() adalah :
public long peek() {
return isi[kepala];
}
Ada hubungannya dengan deQueue, melihat data sekaligus
mengambil.
Untuk mengosongkan Stack, maka digunakan method clear() yang
melakukan penghapusan data secara berulang-ulang sampai isi Stack
habis.
public void clear() {
while( !isEmpty() )
deQueue();
}
Circular Queue
(lanjutan 4)
Untuk melihat isi dari Circular Queue, else {
maka digunakan method tampil () for(i=kepala+1; i<max; i++) {
seperti berikut : System.out.print(isi[i]);
System.out.print(" ");
public void tampil() {
int i; }
if(kepala < ekor) { for(i=0; i<=ekor; i++) {
for(i=kepala+1; i<=ekor; i++) { System.out.print(isi[i]);
System.out.print(isi[i]); System.out.print(" ");
System.out.print(" "); }
}
}
}
System.out.println("");
}