Computer >> Máy Tính >  >> Lập trình >> Lập trình

Biểu thức tiền tố và hậu tố trong cấu trúc dữ liệu


Cách viết biểu thức số học được gọi là ký hiệu. Một biểu thức số học có thể được viết bằng ba ký hiệu khác nhau nhưng tương đương, tức là, mà không làm thay đổi bản chất hoặc đầu ra của một biểu thức. Các ký hiệu này là -

  • Infix

  • Tiền tố

  • Postfix

Các ký hiệu infix là các ký hiệu bình thường, được chúng tôi sử dụng trong khi viết các biểu thức toán học khác nhau. Ký hiệu Tiền tố và Hậu tố khá khác nhau.

Ký hiệu tiền tố

Trong ký hiệu này, toán tử là tiền tố cho toán hạng, tức là toán tử được viết trước toán hạng. Ví dụ: + ab . Điều này tương đương với ký hiệu tiền tố a + b . Ký hiệu tiền tố còn được gọi là Ký hiệu Ba Lan .

Ký hiệu Postfix

Kiểu ký hiệu này được gọi là Ký hiệu Ba Lan đảo ngược . Trong kiểu ký hiệu này, toán tử được hậu tố cho các toán hạng tức là toán tử được viết sau các toán hạng. Ví dụ: ab + . Điều này tương đương với ký hiệu tiền tố a + b .

Ví dụ

Số biểu thức Ký hiệu tiền tố Ký hiệu tiền tố Ký hiệu Postfix
1 a + b + a b a b +
2 (a + b) * c * + a b c a b + c *
3 a * (b + c) * a + b c a b c + *
4 a / b + c / d + / a b / c d a b / c d / +
5 (a + b) * (c + d) * + a b + c d a b + c d + *
6 ((a + b) * c) - d - * + a b c d a b + c * d -

Biểu thức phân tích cú pháp

Như chúng ta đã thảo luận, đây không phải là một cách hiệu quả để thiết kế một thuật toán hoặc chương trình để phân tích cú pháp các ký hiệu infix. Thay vào đó, các ký hiệu tiền tố này trước tiên được chuyển đổi thành ký hiệu hậu tố hoặc tiền tố và sau đó được tính toán.

Để phân tích cú pháp bất kỳ biểu thức số học nào, chúng ta cũng cần quan tâm đến mức độ ưu tiên của toán tử và tính kết hợp.

Mức độ ưu tiên

Khi một toán hạng nằm giữa hai toán tử khác nhau, toán tử nào sẽ lấy toán hạng trước, được quyết định bởi mức độ ưu tiên của một toán tử so với các toán tử khác. Ví dụ -

𝑎 + 𝑏 ∗ 𝑐 → 𝑎 + (𝑏 ∗ 𝑐)

Vì phép toán nhân được ưu tiên hơn phép cộng nên b * c sẽ được đánh giá đầu tiên. Bảng ưu tiên toán tử được cung cấp sau.