Các lượt nộp
    Danh sách bài
    Trang chủ
    Báo lỗi

    solution

    Đề bài: [Trình biên dịch] Duyệt cây cú pháp theo mức từ biểu thức trung tố

    Cho một biểu thức trung tố đầy đủ ngoặc (mỗi phép toán hai ngôi đều được bao trong một cặp ngoặc đơn, không có khoảng trắng thừa), với toán tử hai ngôi +,−,×,÷+, -, \times, \div+,−,×,÷ và toán hạng là biến (một chữ cái thường) hoặc hằng số nguyên không âm (có thể nhiều chữ số).

    Hãy phân tích cú pháp để dựng lại AST, sau đó in ra kết quả duyệt theo mức (level-order / BFS) của cây: mỗi mức là một dòng, các nút trên cùng một mức được liệt kê từ trái sang phải, cách nhau bởi một khoảng trắng.

    • Định dạng đầu vào:

      Một dòng duy nhất chứa biểu thức trung tố đầy đủ ngoặc, không chứa khoảng trắng. Độ dài chuỗi không vượt quá 200020002000 ký tự.

    • Định dạng đầu ra:

      In ra nhiều dòng, mỗi dòng tương ứng một mức của cây (bắt đầu từ gốc ở dòng đầu tiên), các nhãn nút trên cùng mức cách nhau một khoảng trắng, theo thứ tự từ trái sang phải.

      Ví dụ: với input (a+(b*c)), cây có gốc +, con trái là lá a, con phải là nút * với hai con b, c. Output gồm 3 dòng:

      +
      a *
      b c
      

    Ví dụ:

    Đầu vào:

    (a+(b*c))

    Đầu ra:

    +
    a *
    b c
    

    Đầu vào:

    a

    Đầu ra:

    a
    

    Đang tải editor...