Chuyển đổi giữa tiền tố trung tố hậu tố

Chào mọi người em đang học cấu trúc dữ liệu và giải thuật.
Mà gặp phần chuyển đổi này phải chình bày cả phương pháp và kết quả mới được điểm.
Em thì chỉ biết làm thôi. Từ biểu thức em chuyển sang cây nhị phân r em thực hiện theo yêu cầu (duyệt trước, sau, giữa).
Em muốn xin mọi người phương pháp chuyển từ tiền tố về trung tố, hậu tố về trung tố, tiền tố về hậu tố.(Không phải code mọi người nhé)

Dưới đây là cách thầy đưa cho mà em dịch ra không hiểu.

Convert Prefix to Infix Expression

Input: Prefix expression: + A B
Output: Infix expression: (A + B)

Input: Prefix expression: *-A/BC-/AKL
Output: Infix expression: ((A-(B/C))*((A/K)-L))

Method:

Iterate the given expression from right to left (in reverse order), one character at a time

  1. If character is operand, push it to stack.

  2. If character is operator,

    2.1. pop operand from stack, say it’s s1.
    2.2. pop operand from stack, say it’s s2.
    2.3. perform (s1 operator s2) and push it to stack.

  3. Once the expression iteration is completed, initialize result string and pop out from stack and add it to result.

  4. Return the result.

1 Like

Hơi khó nhỉ :smile:
Vì cách chuyển đổi đã được đề cập chi tiết trong đoạn tiếng Anh mà thầy cậu đưa rồi. Bọn tớ biết làm gì nữa giờ? :sweat_smile:

Thế này nhé, cậu có thể post bản dịch đoạn tiếng Anh đó của thầy lên đây được không? Sau đó, cậu chỉ chỗ cậu chưa hiểu, bọn tớ sẽ xem có giúp được gì không.

4 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?