Reverse Polish Notation (RPN)

Download Report

Transcript Reverse Polish Notation (RPN)

Reverse Polish Notation (RPN)
Reverse Polish Notation (RPN)
•
•
•
Reverse Polish Notation: menaruh operator di belakang
Nama lain : postfix notation
Implementasi RPN memakai stack
1.
2.
Jika “angka”, tambahkan pada stack
Jika “operator”, turunkan (POP) dua buah data dari stack,
lakukan perhitungan, dan tambahkan (PUSH) hasilnya pada
stack
Reverse Polish Notation (RPN)
•
Downloadlah program dari situs kuliah, compile dan
jalankan
•
Cara penulisan
A+B
A -B
A / B
A * B
A
A
A
A
B
B
B
B
+
/
*
Reverse Polish Notation (RPN)
Contoh-1
10 + 5
Data di PUSH ke stack
Jika operator, lakukan operasi
pada dua data terakhir yang di PUSH
ke stack
10 5 +
+
5
5
10
10
10
push(10)
push(5)
10+5
hitung !!
15
Reverse Polish Notation (RPN)
Contoh-3
10 * (5 +4)
A*B→AB*
(banyaknya input > 2)
10, (5+4) , *
A+B→AB+
10 , ( 5, 4, +), *
10 5 4 + *
+
10
*
4
4
5
5
5
9
9
10
10
10
10
10
90
Reverse Polish Notation (RPN)
12

6 3

Contoh-4
12

6 3

 14
*
 2
  14
, 
  2

 ,*

  12  
 6 , 
 , -  , (14 , 2 , /),*
  3  
( 6 , (12 ,3 , /), - ), (14 , 2 , /),*
6
12
/
3
6
-
3
4
6
6
6
/
-
/
12 12 12 4
6
3
6
2
2
*
2
14 14 14 7
7
2
2 14
2
2
2
14
2
/
*
Latihan 1
a) Ubahlah perhitungan di bawah ke dalam RPN
16 

*  25 
3 
4 
40
+2
10
12
b) Implementasikan perhitungan di atas dengan stack, dan
gambarkan kondisi stack tiap tahap