Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

Expression Tree (ต้นไม้นิพจน์) ใน C++

Expression Tree คืออะไร?

Expression Tree เป็น Binary Tree พิเศษที่:

  • Leaf Nodes = Operand (ตัวถูกดำเนินการ เช่น ตัวเลข, ตัวแปร)
  • Internal Nodes = Operator (ตัวดำเนินการ เช่น +, -, *, /)

ตัวอย่าง

นิพจน์: (a + b) * (c - d)

Expression Tree:

        *
       / \
      +   -
     / \ / \
    a  b c  d

การใช้งาน

  • Inorder Traversal -> ได้ Infix Expression (a + b) * (c - d)
  • Postorder Traversal -> ได้ Postfix (ab+cd-*)
  • Preorder Traversal -> ได้ Prefix (*+ab-cd)

ประโยชน์: ใช้ใน Compiler, Interpreter, Expression Evaluation, Symbolic Math