Есть русский алфавит, и еще 2 специальных символа: begin и end. Все слова начинаются с begin и заканчиваются на end. Программе необходимо, чтобы словарь был представлен в виде ориентированного графа.
Вот пример графа-словаря со словами «ведро», «ядро», «перо», «печь» и «речь»:
begin -+- в --- е -+- д -+- р --- о -+- end
| | | |
+- я -------/ | |
| | |
+- п --- е -+-----/ |
| | |
| \-----+- ч --- ь -/
| |
\- р --- е -------/
Инвариант: если вы пройдете вдоль линий слева направо от begin к end, вы обязательно получите какое-нибудь словарное слово.
Словарь большой, пол-миллиона слов. В графе сотни тысяч вершин.
Граф уже построен. Теперь собственно вопрос: нужно придумать такой формат/способ хранения графа, чтобы занимать как можно меньше памяти.