Die Basis ist eine ganz spezielle Form einer Baumstruktur -> Directed Acyclic Word Graph -> DAWG in der dann ca. 200.000 deutsche Wörter gespeichert sind. Eine solche Liste als Textdatei würde ungefähr 3 Mb benötigen und ist als DAWG nur noch 800 Kb groß. Zusätztlich kann man in diesem DWAG Tree nun sehr schnell und effizient suchen. Neben der Komprimierung des Wörterbuches und der vollständigen Entfernung der redundanten Prefixes und Suffixe der Wörter ist die schnelle Suche die Hauptaufgabe dieses DWAG. Das Program demonstriert nun wie man in einem solchen DWAG schnell suchen kann. Einerseits ein Pattern-Matching das Wildcards untertützt, zb. für Rechtschreibprüfungen etc.pp. Und eine weitere Suchfunktion ist die kombinatorische Suche, wie zb. beim Scabble, Kreuzworträtseln oder eben 9Live nötig. Ich benutze dieses kleine Projekt immer wenn ich mal interessante Rätsel auf 9Live (beim Durch-Zappen wohlgemerkt ) sehe. Die Organistation solcher Wortlisten in einem DAWG ist der beste und effizienteste Algorithmus/Datenstruktur die ich für diese Aufgabe kenne. Die Zielsetzung meinerseits für die Entwicklung dieses Source war es eben die performanteste Lösung zu kreieren. Ich kenne keine andere Tree-Implementierung die schneller ist. Und bei der weiteren Entwicklung von zb. Kreuzworträtseln oder meiner Scabble Engine benötigte ich eben eine enorm schnelle Suche, auch kombinatorisch, über sehr große Wortlisten. Der DWAG Source demonstriert - Konstruktion eines DWAG Trees, als azyklische Datenstrukturen - die dynamische just in time Erzeugung solcher Trees - Verwendung eines inplaced Speichermanagers für die Node Strukturen - Verwendung von Hashfunktionen (nicht die kryptographischen Hashfunktion) bei der Komprimierung eines solchen Trees -> entfernen der redundanten Wort Prefixe, dh. Wörter mit gleichen Endungen werden zusammengefasst - Suche per Patternmatching und Wildcards - Suche per Kombinatorik -> Permutation von Buchstaben - sowohl iterative wie auch rekusive Programmierungen - Enumeration pr Callbacks in einem solchen Tree