Anda di halaman 1dari 2

Jawaban tugas pemrograman Stack pak Dwi

(A+B)/((C-D)*E^F) infix ke postfix

^ * ( ( / + ( S = 17 ; R = S[i] Hasil output : AB+C/D-EF^*


2

Algoritma infix ke prefix

# Langkah 0: # Baca ungkapan dalam notasi infix, misalnya S;


Tentukan panjang ungkapan tersebut, misalnya N; Siapkan sebuah tumpukan kosong dan siapkan derajat masing masing operator. Misalnya : ^ berderajat 3, * dan / berderajat 2, + dan berderajat 1 dan ( berderajat 0 ). Dimulai dari I : N sampai 1, kerjakan langkah langkah berikut : R=S(I) Test nilai R . Jika R adalah :

# Langkah 1:

Operand

: Langsung ditulis

Kurung buka : Pop dan tulis semua isi tumpukan sampai ujung tumpukan = ), pop juga tanda ini tetapi tidak perlu ditulis .

Kurung tutup : Push kedalam tumpukan Operator : Jika tumpukan kosong, atau derajat R lebih tinggi dibanding derajat ujung tumpukan, push operator kedalam tumpukan. Jika tidak pop ujung tumpukan dan tulis, kemudian ulangi perbandingan R dengan ujung tumpukan, lalu R di push.

# Langkah 2: Jika akhir notasi infix telah tercapai dan tumpukan masih belum kosong, pop semua isi tumpukan dan tulis hasilnya.
3

Infix ke prefix

+ )

/ ) * ^ ) R = S[i] Hasil output : FE^*DC-BA+/ Ket : warna Warna Warna pertama di POP pop kedua krn operator - lebih kecil derajatnya dari operator / terakhir di POP ada tanda ( .

NB : tanda kurung tutup tidak ditulis dalam hasil .

Anda mungkin juga menyukai