Tôi không thể hiểu được làm thế nào mà cây được tạo ra từ chuỗi đầu vào đã cho.
Bạn về cơ bản tạo ra một bộ ba patricia với tất cả các hậu tố bạn đã liệt kê. Khi chèn vào một bộ ba patricia, bạn tìm kiếm gốc cho một đứa trẻ bắt đầu với char đầu tiên từ chuỗi đầu vào, nếu nó tồn tại bạn tiếp tục xuống cây nhưng nếu không thì bạn tạo một nút mới ra khỏi thư mục gốc.Gốc sẽ có nhiều con dưới dạng các ký tự duy nhất trong chuỗi đầu vào ($, a, e, h, i, n, r, s, t, w). Bạn có thể tiếp tục quá trình đó cho mỗi ký tự trong chuỗi đầu vào.
Cây hậu tố được sử dụng để tìm chuỗi con đã cho trong một chuỗi nhất định, nhưng cây được giúp đỡ như thế nào?
Nếu bạn đang tìm chuỗi con "hen", hãy bắt đầu tìm kiếm từ gốc cho trẻ bắt đầu bằng "h". Nếu độ dài của chuỗi con "h" sau đó tiếp tục xử lý con "h" cho đến khi bạn đến cuối chuỗi hoặc bạn nhận được sự không khớp của các ký tự trong chuỗi đầu vào và chuỗi con "h". Nếu bạn kết hợp tất cả các con "h", tức là đầu vào "hen" khớp với "anh ấy" trong con "h", sau đó chuyển sang con của "h" cho đến khi bạn nhận được "n", nếu nó không tìm thấy một đứa trẻ bắt đầu với "n" thì chuỗi con không tồn tại.
Compact Suffix Trie code:
└── (black)
├── (white) as
├── (white) e
│ ├── (white) eir
│ ├── (white) en
│ └── (white) ere
├── (white) he
│ ├── (white) heir
│ ├── (white) hen
│ └── (white) here
├── (white) ir
├── (white) n
├── (white) r
│ └── (white) re
├── (white) s
├── (white) the
│ ├── (white) their
│ └── (white) there
└── (black) w
├── (white) was
└── (white) when
Suffix Tree code:
String = the$their$there$was$when$
End of word character = $
└── (0)
├── (22) $
├── (25) as$
├── (9) e
│ ├── (10) ir$
│ ├── (32) n$
│ └── (17) re$
├── (7) he
│ ├── (2) $
│ ├── (8) ir$
│ ├── (31) n$
│ └── (16) re$
├── (11) ir$
├── (33) n$
├── (18) r
│ ├── (12) $
│ └── (19) e$
├── (26) s$
├── (5) the
│ ├── (1) $
│ ├── (6) ir$
│ └── (15) re$
└── (29) w
├── (24) as$
└── (30) hen$
tôi thấy những 2 video rất hữu ích trong việc tìm hiểu cây hậu tố. http://www.youtube.com/watch?v=VA9m_l6LpwI & http://www.youtube.com/watch?v=F3nbY3hIDLQ#t=2360 – spats