2009-03-25 4 views
4

Comment implémenterait-on this data structure en C? C'est une structure similaire mais deux fois plus efficace que le DAWG, plus efficace que le trie qui compresse seulement les préfixes.Comment peut-on implémenter un CDAWG (Compact Directed Acyclic Word Graph) en C?

+1

C'est une question plutôt ouverte, qui semble demander à quelqu'un de mettre en œuvre tout le structure de données (plutôt spécifique, spécialisée) pour vous. Vous pourriez obtenir une meilleure réponse si vous (a) décrivez la structure des données et (b) montrez le travail que vous avez déjà fait, ou les idées que vous avez. –

Répondre

5

D'après ce que je peux voir de ce paper

C'est une structure arborescente avec compression suffixe pour réduire les changements d'état final pour un match, puisque j'avais travaillé sur quelque chose de semblable, je l'avais aussi envisagé de le faire que pour sauver espace. Ce fut la solution que j'avais pensé pour la structure de données, je suis curieux de voir s'il y a d'autres approches:

struct cdawg 
{ 
    int issuffix:1; 
    int length:31; 
    char *s; // suffix if issuffix == 1, else array of valid transition chars 
    struct cdawg *trans; // array of next states based on the index of trans char in s, null if suffix 
}; 
Questions connexes