Sabtu, 29 Mei 2010

Algoritma Stack (infiks ke postfix)

Algoritma yang dilakukan untuk mengubah notasi infiks ke postfix adalah sbb :
1. Lakukan pemasukan elemen dalam ekspresi satu per satu
2. Bila elemen yang dimasukkan adalah operand, maka jadikan hasil saja, lanjutkan proses 1. Bila bukan operand, jalankan proses 3.
3. Bila stack dalam keadaan hampa, masukkan elemen tersebut dan lanjutkan proses 1. Bila tidak hampa, jalankan proses 4.
4. Bila elemen yang diperiksa adalah operator ')', keluarkan semua isi elemen (digabungkan dengan hasil sebelumnya) mulai TOP hingga '('. Abaikan (buang)operator '(' dan ')' dari hasil, karenapostfix tidak menggunakan mereka, lanjutkan proses 1. Bila bukan operator ')', jalankan proses 5.
5. Bila elemen yang diperiksa memiliki tingkat derajat lebih kecil atau sama dengan TOP stack, keluarkan (digabung dengan hasil sebelumnya) TOP stack. TOP stack menjadi TOP - 1. Ulangi proses 5 ini sampai tingkat derajat yang ada di TOP stack kebih kecil, atau TOP stack berisi '(', atau stack dalam keadaan hampa, baru elemen tersebut dimasukkan. Lanjutkan proses 1
6. Bila elemen telah habis, keluarkan seluruh isi stack. Selesai.


Tingkatan derajat operator dari besar ke kecil :
1. ^ pangkat atau eksponen
2. * atau / perkalian atau pembagian (proses yang paling kiri dulu)
3. + atau - penambahan atau pengurangan (proses yang kiri dulu)


Sumber : Bambang Wahyudi, 2004, Pengantar Struktur Data dan Algoritma, Yogyakarta : Penerbit Andi.

Tidak ada komentar:

Posting Komentar