То, что вы ищете, это встроенная БД, и большинство из них написаны на C ++, но есть некоторые, которые имеют оболочки C #.Я бы порекомендовал Berkeley DB для .NET (который является оберткой для Oracle Berkeley DB ).
Я бы порекомендовал вам создать уникальный хеш длякаждое префиксное дерево, в котором генерируются хеши, будет иметь местность, которая должным образом представляет аналогичные префиксные деревья: другими словами, хеши для двух одинаковых префиксных деревьев должны быть очень близки друг к другу.Игра, на которую вы ссылаетесь, называется Tic-Tac-Toe, поэтому хеширование подобных игр Tic-Tac-Toe должно быть легким, вот несколько ссылок (я их не читал, я просто быстро нашел«хэширование крестики-нолики» и таковы были результаты):
Хеш затем сохраняется в БД Berkeley, а дерево префиксов сохраняется в файле aux, или, если вы хотите, вы также можете сохранить его вЗначение.Поскольку Berkeley DB хранит пары ключ-значение, вы можете установить хэш в качестве ключа и значение на что угодно (т. Е. Ваше дерево префиксов или путь к вспомогательному файлу, содержащему ваше дерево префиксов).Затем все, что вам нужно сделать, - это найти похожие хеши и извлечь соответствующие деревья из файла (ов) aux.
Berkeley DB хранит аналогичные ключи в последовательности, поэтому вы можете полагаться на тот факт, что он не будет перемещать ключи вокруги разбей местность твоих хэшей.Поскольку локальность не будет нарушена, вы можете выполнить дополнительную оптимизацию и получить большую страницу пар ключ-значение, а также сократить количество поисков и запросов, которые вы выполняете на диске.