Здравствуйте, Lexey, Вы писали:
L>https://github.com/rsdn/CodeJam/pull/16/files
L>API для последующего использования после создания дерева пока нет. Буду его прикручивать второй очередью.
, код нравится. Из предложений пока только мелочь — поменять оформление полей — префикс (_) в начале имени у нас вроде ставится
L>Кусок функционала вынесен в абстрактную базу, чтобы не дублировать код между SuffixTree и SuffixTreeNaive. Второе используется как простая референс-реализация для тестирования основной. В принципе, можно, и кодогенератор под это заюзать, чтобы не плодить базовые классы для внутреннего использования.
Разделение на классы я бы трогал в последнюю очередь — сначала сделать полезный функционал, затем покрыть тестами, затем уже менять. На сейчас разделение выглядит абсолютно правильным, т.к. во-первых позволяет аккуратно всё протестировать, во-вторых позволяет разбить сложный код на несколько частей попроще. Если не хочется, чтобы эти детали вылезали при автодополнении — просто спрятать базовый класс в отдельный namespace, да и всё.