Khái niệm xây dựng cây hậu tố thời gian tuyến tính đơn giản


13

Năm 1973, Weiner đã xây dựng các cây hậu tố thời gian tuyến tính đầu tiên. Thuật toán được đơn giản hóa vào năm 1976 bởi McCreight và năm 1995 bởi Ukkonen. Tuy nhiên, tôi thấy thuật toán của Ukkonen tương đối liên quan đến khái niệm.

Đã có sự đơn giản hóa thuật toán của Ukkonen từ năm 1995?


4
Farach et el 1998. Tôi nghĩ rằng đây là một nơi tốt để bắt đầu đọc: scholar.google.co.uk/iêng
Radu GRIGore

Câu trả lời:


9

Tôi không chắc chắn nếu có bất kỳ kết quả mới trực tiếp đơn giản hóa việc xây dựng cây hậu tố. Tuy nhiên, đã có ít nhất một kết quả đưa ra một thuật toán rất đơn giản để xây dựng các mảng hậu tố trong thời gian tuyến tính.

Lưu ý rằng có nhiều hơn một sự tương đương về mặt khái niệm giữa hai cấu trúc dữ liệu này, vì bạn có thể sử dụng một mảng hậu tố (với thời gian để truy vấn tiền tố chung dài nhất) để xây dựng một cây hậu tố tương đương. Đây sẽ là một bài tập tương đối đơn giản, nhưng tôi có thể cung cấp thêm chi tiết nếu cần.Ôi(1)

Ngoài ra, với mục đích thực tế, việc xây dựng các mảng hậu tố trong thời gian thậm chí còn dễ dàng hơn , nhưng tôi đoán rằng tôi sẽ hơi lạc đề ở đây.Ôi(nlgn)


1
Bạn có thể đưa ra một con trỏ tới cách dễ dàng hơn để xây dựng các mảng hậu tố trong thời gian O (N lg N) không?
Randomblue

1
Dán nhãn tất cả các hậu tố có độ dài 2 ^ k với một số nguyên sao cho các nhãn tương ứng với mối quan hệ thứ tự giữa các hậu tố. Bước đầu tiên (k = 0) là rõ ràng. Để tính toán các nhãn ở bước k, hãy sử dụng các nhãn từ bước k-1 và thực hiện sắp xếp cơ số. Bài viết này phải dễ hiểu: webglimpse.net/pub/suffix.pdf
zotachidil

7

Ngoài những gì đã được đề cập ( Kärkkäinen & Sanders, 2003 ), tôi nghĩ bạn sẽ đánh giá cao phiên bản "mới hơn" của Kärkkäinen, Sanders và Burkhard, 2006 . Thuật toán về cơ bản tuân theo cấu trúc thuật toán của Farach. Nó được cho là đơn giản hơn về mặt khái niệm, nhưng phần thưởng thực sự là chúng cung cấp cho người đọc một triển khai thuật toán. Nó chỉ có khoảng 50 dòng C ++, vì vậy thực sự không có chi tiết ẩn.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.