Hãy nói rằng tôi đang đọc một dòng từ một tập tin:Phân tích văn bản để Thực hiện một cấu trúc cây dữ liệu
{Parent{{ChildA}{ChildB}}}
More phức tạp ví dụ:
{Parent{{ChildA{ChildC}{ChildD}}{ChildB{ChildE}{ChildF}}}}
Đó là ngữ pháp sử dụng để xây dựng một cây .
Bất kỳ tên nào trong ngoặc đơn {}
là một nút và nếu trong khung đó có các nút (dấu ngoặc) khác, các nút đó là con.
Tôi có thể phân tích ví dụ cụ thể đầu tiên bằng bộ đếm, nhưng chỉ để tìm tên văn bản của các nút. Làm thế nào tôi có thể phân tích cú pháp này để tôi có thể xác định các nút nào là con của nhau? Tôi dường như không thể bao bọc tâm trí của mình xung quanh mã tôi sẽ sử dụng. Tôi có cảm giác tôi sẽ sử dụng đệ quy.
Bất kỳ trợ giúp hoặc lời khuyên nào sẽ được đánh giá cao.
C++ được ưu tiên.
Cảm ơn bạn rất nhiều.
Điều này trông giống như ngữ pháp ngữ cảnh đơn giản, vì vậy bạn có thể sử dụng bất kỳ số lượng công cụ chuẩn nào để tạo lexer và phân tích cú pháp cho điều đó. –
Làm thế nào? Tôi xin lỗi, tôi hoàn toàn mới với điều này. –
@LearningPython: Bạn mới sử dụng C++, hay tương đối quen thuộc với ngôn ngữ? – ildjarn