Ağaçların büyük bir veri kümesi var ve bir treelet (bağlı alt çizgi ) belirterek aramak istiyorum . Sorgu, veri kümesindeki treelet'in tüm occourrences'ını döndürmelidir.
Bunu yapmak için etkili algoritmalar var mı?
Son ek dizileri gibi bir şey düşünüyordum, ancak ağaçları tiz olarak kodlamak (düğümlerinin sabit bir çapraz sıralaması ile) işe yaramaz, çünkü arama treelet herhangi bir keyfi şekle sahip olabilir.
GÜNCELLEME:
Beklediğim tipik örnekler hakkında bazı ayrıntılar:
Veri kümesi, her biri yaklaşık yirmi ila otuz düğümden oluşan en az on binlerce ağaçtan oluşacaktır. Ağaçlar ikili olmayacaktır, ancak düğüm başına tipik çocuk sayısı küçük olacaktır (bazı dejenere durumlarda yaklaşık otuza ulaşmasına rağmen, genellikle dört veya beşten büyük değildir). Etiket sayısı on binlerce olacak.
NLP uygulamaları için ihtiyacım var: her ağaç bir cümlenin bağımlılık ayrışması olacak, her düğüm bir kelime occourrence temsil eden ve her etiket bir sözlük kelime (bazı dekorasyon ile).