Data Structures and Algorithms InfixToPostfix.pdf · 2018-01-19 · Infix to Postfix Conversion....

Preview:

Citation preview

acer
Typewritten Text
acer
Typewritten Text
acer
Typewritten Text
acer
Typewritten Text
acer
Typewritten Text
โครงสร้างข้อมูลและอัลกอริทึม ตัวอย่างการประยุกต์ใช้ โครงสร้างข้อมูลสแต็กในการแปลง Infix to Postfix
acer
Typewritten Text
acer
Typewritten Text
acer
Typewritten Text
acer
Typewritten Text
acer
Typewritten Text
acer
Typewritten Text
acer
Typewritten Text

Infix to Postfix Conversion

acer
Typewritten Text
Algorithm
acer
Typewritten Text
acer
Typewritten Text
acer
Typewritten Text
acer
Typewritten Text
acer
Typewritten Text
acer
Typewritten Text
acer
Typewritten Text
acer
Typewritten Text
1. เมื่อพบเครื่องหมายคำนวณทางคณิตศาสตร์ให้อ่านและแสดงผลข้อมูลออก ตัวเลขก่อนหน้านี้ออกมาแล้วนำเครื่องหมายทางคณิตศาสตร์ไปเก็บไว้ในสแตก 2. หากพบว่าลำดับความสำคัญของเครื่องหมายทางคณิตศาสตร์น้อยกว่าจะทำการนำ เครื่องหมายทางคณิตศาสตร์ที่มีลำดับความสำคัญมากกว่าที่อยู่ในแต่สแตกออกมา แสดงผลแล้วนำเครื่องหมายทางคณิตศาสตร์ที่มีลำดับความสำคัญน้อยกว่าไปเก็บ ไว้ในสแตก 3. ถ้าข้อมูลที่อ่านหมดแล้วให้นำเครื่องหมายที่อยู่ในสแตกออกมาแสดงผล 4. เมื่อพบเครื่องหมาย ( ให้นำข้อมูลตัวถัดไปออกมาแสดงผล 5. เมื่อพบเครื่องหมาย ) ให้นำข้อมูลที่อยู่ในสแตกออกมาแสดงผลจนพบเครื่องหมาย ( แล้วพบทิ้งทั้งหมด
acer
Typewritten Text
acer
Typewritten Text
acer
Typewritten Text
acer
Typewritten Text
acer
Typewritten Text
acer
Typewritten Text
acer
Typewritten Text
acer
Typewritten Text
acer
Typewritten Text
acer
Typewritten Text
acer
Typewritten Text
acer
Typewritten Text
acer
Typewritten Text
acer
Typewritten Text

Infix to Postfix ConversionExample 1

• 3+4*5/6

Infix to Postfix ConversionExample 1

• 3+4*5/6

• Stack:

• Output:

acer
Typewritten Text

Infix to Postfix ConversionExample 1

• 3+4*5/6

• Stack:

• Output: 3

Infix to Postfix ConversionExample 1

• 3+4*5/6

• Stack: +

• Output: 3

Infix to Postfix ConversionExample 1

• 3+4*5/6

• Stack: +

• Output: 3 4

Infix to Postfix ConversionExample 1

• 3+4*5/6

• Stack: + *

• Output: 3 4

Infix to Postfix ConversionExample 1

• 3+4*5/6

• Stack: + *

• Output: 3 4 5

acer
Typewritten Text

Infix to Postfix ConversionExample 1

• 3+4*5/6

• Stack: +

• Output: 3 4 5 *

Infix to Postfix ConversionExample 1

• 3+4*5/6

• Stack: + /

• Output: 3 4 5 *

Infix to Postfix ConversionExample 1

• 3+4*5/6

• Stack: + /

• Output: 3 4 5 * 6

Infix to Postfix ConversionExample 1

• 3+4*5/6

• Stack: +

• Output: 3 4 5 * 6 /

Infix to Postfix ConversionExample 1

• 3+4*5/6

• Stack:

• Output: 3 4 5 * 6 / +

• Done!

Infix to Postfix ConversionExample 2

• (300+23)*(43-21)/(84+7)

Infix to Postfix ConversionExample 2

• (300+23)*(43-21)/(84+7)

• Stack:

• Output:

Infix to Postfix ConversionExample 2

• (300+23)*(43-21)/(84+7)

• Stack: (

• Output:

Infix to Postfix ConversionExample 2

• (300+23)*(43-21)/(84+7)

• Stack: (

• Output: 300

Infix to Postfix ConversionExample 2

• (300+23)*(43-21)/(84+7)

• Stack: ( +

• Output: 300

Infix to Postfix ConversionExample 2

• (300+23)*(43-21)/(84+7)

• Stack: ( +

• Output: 300 23

Infix to Postfix ConversionExample 2

• (300+23)*(43-21)/(84+7)

• Stack: (

• Output: 300 23 +

Infix to Postfix ConversionExample 2

• (300+23)*(43-21)/(84+7)

• Stack:

• Output: 300 23 +

Infix to Postfix ConversionExample 2

• (300+23)*(43-21)/(84+7)

• Stack: *

• Output: 300 23 +

Infix to Postfix ConversionExample 2

• (300+23)*(43-21)/(84+7)

• Stack: * (

• Output: 300 23 +

Infix to Postfix ConversionExample 2

• (300+23)*(43-21)/(84+7)

• Stack: * (

• Output: 300 23 + 43

Infix to Postfix ConversionExample 2

• (300+23)*(43-21)/(84+7)

• Stack: * ( -

• Output: 300 23 + 43

Infix to Postfix ConversionExample 2

• (300+23)*(43-21)/(84+7)

• Stack: * ( -

• Output: 300 23 + 43 21

Infix to Postfix ConversionExample 2

• (300+23)*(43-21)/(84+7)

• Stack: * (

• Output: 300 23 + 43 21 -

Infix to Postfix ConversionExample 2

• (300+23)*(43-21)/(84+7)

• Stack: *

• Output: 300 23 + 43 21 -

Infix to Postfix ConversionExample 2

• (300+23)*(43-21)/(84+7)

• Stack:

• Output: 300 23 + 43 21 - *

Infix to Postfix ConversionExample 2

• (300+23)*(43-21)/(84+7)

• Stack: /

• Output: 300 23 + 43 21 - *

Infix to Postfix ConversionExample 2

• (300+23)*(43-21)/(84+7)

• Stack: / (

• Output: 300 23 + 43 21 - *

Infix to Postfix ConversionExample 2

• (300+23)*(43-21)/(84+7)

• Stack: / (

• Output: 300 23 + 43 21 - * 84

Infix to Postfix ConversionExample 2

• (300+23)*(43-21)/(84+7)

• Stack: / ( +

• Output: 300 23 + 43 21 - * 84

Infix to Postfix ConversionExample 2

• (300+23)*(43-21)/(84+7)

• Stack: / ( +

• Output: 300 23 + 43 21 - * 84 7

Infix to Postfix ConversionExample 2

• (300+23)*(43-21)/(84+7)

• Stack: / (

• Output: 300 23 + 43 21 - * 84 7 +

Infix to Postfix ConversionExample 2

• (300+23)*(43-21)/(84+7)

• Stack: /

• Output: 300 23 + 43 21 - * 84 7 +

Infix to Postfix ConversionExample 2

• (300+23)*(43-21)/(84+7)

• Stack:

• Output: 300 23 + 43 21 - * 84 7 + /

• Done!

Infix to Postfix ConversionExample 3

• (4+8)*(6-5)/((3-2)*(2+2))

Infix to Postfix ConversionExample 3

• (4+8)*(6-5)/((3-2)*(2+2))

• Stack:

• Output:

Infix to Postfix ConversionExample 3

• (4+8)*(6-5)/((3-2)*(2+2))

• Stack: (

• Output:

Infix to Postfix ConversionExample 3

• (4+8)*(6-5)/((3-2)*(2+2))

• Stack: (

• Output: 4

Infix to Postfix ConversionExample 3

• (4+8)*(6-5)/((3-2)*(2+2))

• Stack: ( +

• Output: 4

Infix to Postfix ConversionExample 3

• (4+8)*(6-5)/((3-2)*(2+2))

• Stack: ( +

• Output: 4 8

Infix to Postfix ConversionExample 3

• (4+8)*(6-5)/((3-2)*(2+2))

• Stack: (

• Output: 4 8 +

Infix to Postfix ConversionExample 3

• (4+8)*(6-5)/((3-2)*(2+2))

• Stack:

• Output: 4 8 +

Infix to Postfix ConversionExample 3

• (4+8)*(6-5)/((3-2)*(2+2))

• Stack: *

• Output: 4 8 +

Infix to Postfix ConversionExample 3

• (4+8)*(6-5)/((3-2)*(2+2))

• Stack: * (

• Output: 4 8 +

Infix to Postfix ConversionExample 3

• (4+8)*(6-5)/((3-2)*(2+2))

• Stack: * (

• Output: 4 8 + 6

Infix to Postfix ConversionExample 3

• (4+8)*(6-5)/((3-2)*(2+2))

• Stack: * ( -

• Output: 4 8 + 6

Infix to Postfix ConversionExample 3

• (4+8)*(6-5)/((3-2)*(2+2))

• Stack: * ( -

• Output: 4 8 + 6 5

Infix to Postfix ConversionExample 3

• (4+8)*(6-5)/((3-2)*(2+2))

• Stack: * (

• Output: 4 8 + 6 5 -

Infix to Postfix ConversionExample 3

• (4+8)*(6-5)/((3-2)*(2+2))

• Stack: *

• Output: 4 8 + 6 5 -

Infix to Postfix ConversionExample 3

• (4+8)*(6-5)/((3-2)*(2+2))

• Stack:

• Output: 4 8 + 6 5 - *

Infix to Postfix ConversionExample 3

• (4+8)*(6-5)/((3-2)*(2+2))

• Stack: /

• Output: 4 8 + 6 5 - *

Infix to Postfix ConversionExample 3

• (4+8)*(6-5)/((3-2)*(2+2))

• Stack: / (

• Output: 4 8 + 6 5 - *

Infix to Postfix ConversionExample 3

• (4+8)*(6-5)/((3-2)*(2+2))

• Stack: / ( (

• Output: 4 8 + 6 5 - *

Infix to Postfix ConversionExample 3

• (4+8)*(6-5)/((3-2)*(2+2))

• Stack: / ( (

• Output: 4 8 + 6 5 - * 3

Infix to Postfix ConversionExample 3

• (4+8)*(6-5)/((3-2)*(2+2))

• Stack: / ( ( -

• Output: 4 8 + 6 5 - * 3

Infix to Postfix ConversionExample 3

• (4+8)*(6-5)/((3-2)*(2+2))

• Stack: / ( ( -

• Output: 4 8 + 6 5 - * 3 2

Infix to Postfix ConversionExample 3

• (4+8)*(6-5)/((3-2)*(2+2))

• Stack: / ( (

• Output: 4 8 + 6 5 - * 3 2 -

Infix to Postfix ConversionExample 3

• (4+8)*(6-5)/((3-2)*(2+2))

• Stack: / (

• Output: 4 8 + 6 5 - * 3 2 -

Infix to Postfix ConversionExample 3

• (4+8)*(6-5)/((3-2)*(2+2))

• Stack: / ( *

• Output: 4 8 + 6 5 - * 3 2 -

Infix to Postfix ConversionExample 3

• (4+8)*(6-5)/((3-2)*(2+2))

• Stack: / ( * (

• Output: 4 8 + 6 5 - * 3 2 -

Infix to Postfix ConversionExample 3

• (4+8)*(6-5)/((3-2)*(2+2))

• Stack: / ( * (

• Output: 4 8 + 6 5 - * 3 2 - 2

Infix to Postfix ConversionExample 3

• (4+8)*(6-5)/((3-2)*(2+2))

• Stack: / ( * ( +

• Output: 4 8 + 6 5 - * 3 2 - 2

Infix to Postfix ConversionExample 3

• (4+8)*(6-5)/((3-2)*(2+2))

• Stack: / ( * ( +

• Output: 4 8 + 6 5 - * 3 2 – 2 2

Infix to Postfix ConversionExample 3

• (4+8)*(6-5)/((3-2)*(2+2))

• Stack: / ( * (

• Output: 4 8 + 6 5 - * 3 2 – 2 2 +

Infix to Postfix ConversionExample 3

• (4+8)*(6-5)/((3-2)*(2+2))

• Stack: / ( *

• Output: 4 8 + 6 5 - * 3 2 – 2 2 +

Infix to Postfix ConversionExample 3

• (4+8)*(6-5)/((3-2)*(2+2))

• Stack: / (

• Output: 4 8 + 6 5 - * 3 2 – 2 2 + *

Infix to Postfix ConversionExample 3

• (4+8)*(6-5)/((3-2)*(2+2))

• Stack: /

• Output: 4 8 + 6 5 - * 3 2 – 2 2 + *

Infix to Postfix ConversionExample 3

• (4+8)*(6-5)/((3-2)*(2+2))

• Stack:

• Output: 4 8 + 6 5 - * 3 2 – 2 2 + * /

• Done!

Recommended