Sto cercando di memorizzare un elenco di stringhe in modo conciso, in modo che possano essere analizzate/ricercate molto rapidamente.Come posso creare un grafo word aciclico diretto incrementale per archiviare e cercare stringhe?
Un grafico di parola aciclico diretto (DAWG) si adatta a questo scopo meravigliosamente. Tuttavia, non ho un elenco delle stringhe da includere in primo luogo, quindi deve essere incrementabile in modo incrementale. Inoltre, quando cerco attraverso una stringa, ho bisogno di riportare i dati associati al risultato (non solo un booleano che dice se era presente).
Ho trovato informazioni su una modifica del DAWG per il tracciamento dei dati di stringa qui: http://www.pathcom.com/~vadco/adtdawg.html Sembra estremamente, estremamente complesso e non sono sicuro di essere in grado di scriverlo.
Ho anche trovato alcuni documenti di ricerca che descrivono algoritmi di costruzione incrementale, anche se ho trovato che i documenti di ricerca in generale non sono molto utili.
Non credo di essere abbastanza avanzato da poter combinare entrambi questi algoritmi da solo. Esiste già la documentazione di un algoritmo che le include, oppure un algoritmo alternativo con una buona memoria utilizza la velocità &?
Grazie, JohnPaul. Probabilmente userò un radix tree per memorizzare le stringhe, anche se mi sarebbe piaciuto risparmiare un po 'di più sulla memoria. Speravo che esistesse un compromesso tra gli algoritmi di costruzione DAWG incrementale e la struttura di tracciamento delle stringhe, ma suppongo di no! Purtroppo, non posso offrirti lavoro o lavoro, perché questo è solo per un mio progetto di hobby. Se vuoi creare e documentare una struttura flessibile per divertimento, sii mio ospite e buona fortuna (non ne ho il cervello, almeno)! –