PERTEMUAN XII
STACK (Lanjut)
TUGAS PENDAHULUAN
1. 1. Jelaskan perbedaan program stack antara menggunakan
array dan linked list!
2. 2. Jelaskan aplikasi-aplikasi stack dalam dunia nyata!
3. 3. Tuliskan contoh program pada operasi full!
4. 4. Tuliskan contoh program pada operasi empty!
Jawaban
1. 1. Program stack menggunakan array.
Proses inisialisasi dimana proses ini untuk stack
yang menggunakan array adalah dengan mengisi nilai field top dengan 0 (nol),
jika elemen pertama diawali dengan nomor 1. Kalau elemen pertama array dimulai
dengan 0 (contoh bahasa c), maka top di isi dengan nilai -1.
-
Top yang
menunjuk posisi data terakhir (top).
-
Elemen yang
berisi data yang ada dalam stack. Bagian ini lah yang berbentuk array.
-
Maks-elemen
yaitu variabel yang menunjuk maksimal banyaknya elemen dalam stack.
Program stack
menggunakan linked list.
Adapun stack yang
menggunakan linked list, hanya memerlukan suatu pointer yang menunjuk ke data
terakhir (perhatikan proses dihalaman sebelumnya), setiap elemen linked list
mempunyai 2 field yaitu elemen datanya dan pointer bawah yang menunjuk posisi
terakhir sebelum proses push.
2. 2. Dalam dunia nyata bisa kita bayangkan seperti
tumpukan buku, tumpukan kartu, atau tumpukan kursi yang tersusun secara
menumpuk ke atas. Konsep stack yang utuh memiliki beberapa aturan atau batasan
tersendiri yang membedakannya dengan struktur data lain, misalnya kita tidak
bisa menambah data langsung ditengah-tengah tumpukan dengan cara diselipkan.
Begitu juga ketika kita mengambilnya, melainkan setiap operasi harus dikerjakan
pada data yang berada dipaling atas tumpukan.
Beberapa contoh aplikasi yang menerapkan stack,
diantaranya adalah:
-
Expression
evaluation, baik ekspresi aritmatika, lojik maupun boolean.
-
Notasi infix,
prefix, dan postfix, proses perhitungannya maupun konversi antar notasi
tersebut.
-
Backtracking,
contohnya history call pada browser (tombol back).
-
Membantu
penelusuran simpul pohon dengan algoritma DFS (Depth-First-Search).
-
Manajemen memori
dan alokasi memori, komputer modern saat ini menerapkan stack untuk memodelkan
manajemen memori dari program yang sedang berjalan (running program).
-
Permainan Tower
of Hanoi.
-
Konversi
bilangan desimal ke binner.
-
Sampai yang
paling sederhana yaitu membalikkan urutan string.
3. 3. Contoh program pada operasi full.
int IsFull ()
{
if (tumpuk.top== MAX_STACK-1)
return 1;
else
return 0;
}
4. 4. Contoh program pada operasi empty.
int IsEmpty ()
{
if (tumpuk.top==-1)
return 1;
else
return 0;
}
Mksh bang sangat membantu , salam dr kelas 04TPLP008 Izin copas ya ehehe
BalasHapusAlhamdulillah kalau emg membantu, nanti insya Allah bakal di tingkatkan lagi materinya jika saya sudah memahaminya.
Hapus