Cài đặt thuật toán Shunting-yard để chuyển một biểu thức trung tố sang hậu tố, có bổ sung toán tử lũy thừa ^.
Cho biểu thức trung tố (không chứa khoảng trắng) gồm toán hạng là chữ số đơn 0-9, các toán tử + - * / ^ và dấu ngoặc đơn ( ). Độ ưu tiên: ^ cao nhất, tiếp theo * /, thấp nhất là + -. Các toán tử + - * / có tính kết hợp trái; riêng ^ có tính kết hợp phải (ví dụ 232 được hiểu là 2(32), không phải (23)2).
Hãy chuyển biểu thức đã cho sang dạng hậu tố.
Ví dụ: 3+4*2 chuyển thành hậu tố là 3 4 2 * +; 2^3^2 chuyển thành 2 3 2 ^ ^ (vì kết hợp phải).
Một dòng duy nhất chứa biểu thức trung tố hợp lệ, không có khoảng trắng, chỉ gồm chữ số 0-9, các ký tự + - * / ^ ( ).
In ra biểu thức hậu tố tương ứng, các token cách nhau đúng một khoảng trắng, trên một dòng.
Ví dụ:
Đầu vào:
3+4*2
Đầu ra:
3 4 2 * +
Đầu vào:
(1+2)*3
Đầu ra:
1 2 + 3 *
Đang tải editor...