Trong trình biên dịch, biểu thức thường được biểu diễn nội bộ dưới dạng cây biểu thức (expression tree/AST): mỗi lá là một toán hạng, mỗi nút trong là một toán tử hai ngôi với con trái/con phải là hai toán hạng con của nó. Biểu thức hậu tố tương ứng chính là kết quả duyệt cây theo thứ tự hậu thứ tự (post-order).
Cho một biểu thức hậu tố hợp lệ, toán hạng là số nguyên hoặc biến (một chữ cái thường a-z), toán tử hai ngôi +,−,×,÷,^ (+ - * / ^). Hãy dựng cây biểu thức tương ứng rồi in ra:
Ví dụ: hậu tố a b + c * có cây với gốc *, con trái là cây con +(a,b), con phải là lá c; tiền tố là * + a b c, chiều cao 2, số lá 3.
Một dòng duy nhất chứa biểu thức hậu tố, các token cách nhau bởi đúng một khoảng trắng.
In ra đúng 3 dòng:
Ví dụ:
Đầu vào:
a b +
Đầu ra:
+ a b
1
2
Đầu vào:
x
Đầu ra:
x
0
1
Đang tải editor...