Mengubah INFIX menjadi POSTFIX menggunakan STACK pada Visual Studio C++

Untuk mengubah notasi infix menjadi postfix digunakan stack untuk menyimpan operator dengan beberapa aturan sebagai berikut

  1. Sediakan stack untuk menyimpan operator (tipe : char)
  2. Algoritma mengubah notasi infix menjadi postfix

[1].    Baca setiap karakter notasi infix dari awal [2].    Bila operand maka langsung dicetak [3].    Bila tanda ‘(‘ masukkan stack [4].    Bila tanda ‘)’ pop dan cetak semua isi stack sampai TOS = ‘(‘. Pop juga tanda ‘(‘ ini, tetapi tidak usah dicetak [5].    Bila operator : jika stack kosong atau derajad operator lebih tinggi dibanding derajad TOS, push operator ke dalam stack. Jika tidak, pop dan cetak; kemudian ulangi pembandingan dengan TOS. Kemudian di-push [6].    Jika akhir notasi infix telah tercapai, dan stack masih belum kosong, pop semua isi stack dan cetak hasilnya Contoh notasi infix : ( A + B ) / (( C – D ) * E ^ F) Ilustrasi pengubahan notasi infix di atas menjadi notasi postfix secara lengkap tersaji dalam tabel sebagai berikut:

Karakter dibaca Isi Tumpukan Karakter tercetak Hasil Notasi Postfix Yang Terbentuk
( (
A ( + A A
+ ( +
B B A B
) + A B +
/ /
( / (
( / ( (
C / ( ( C A B + C
/ ( ( –
D / ( ( – D A B + C D
) / ( A B + C D –
* / ( *
E / ( * E A B + C D – E
^ / ( * ^
F / ( * ^ F A B + C D – E F
) / ( * ^ A B + C D – E F ^
/ ( * A B + C D – E F ^ *
/
/ A B + C D – E F ^ */

Dari ilustrasi di atas, bisa kita lihat bahwa notasi postfix dari ungkapan: ( A + B ) / (( C – D ) * E ^ F) adalah A B + C D – E F ^ */ Untuk Contoh Programnya bisa DOWNLOAD DISINI