Expected outcome is that it will take a bit less space but run slower.
Could just implement both and leave them available for injection based on user preference.
Trade-offs:
- DADAWG uses less memory. Maybe somewhere on the order of 30% less.
- DADAWG can traverse down a know branch in O(1) while DAWG needs O(log |alphabet|).
- DAWG can traverse all branches in O(|branches|) while DADAWG requires O(|alphabet|) in all cases.
- Creation of DADAWG might be slower. Depends on how good of a space-filling algorithm I can create.
Expected outcome is that it will take a bit less space but run slower.
Could just implement both and leave them available for injection based on user preference.
Trade-offs: