В рамках задания по программированию меня попросили реализовать три суффикса с использованием C ++. Мы можем только реализовать это, используя стандартные библиотеки C ++ 11.
Моя реализация суффикса три состояла из структуры данных Trie(string T)
, который создает три для данной строки s
, Функции в классе Trie
являются следующие:
Trie::Trie(string T)
— конструктор: генерирует дерево.Trie::substring(string s)
— логическое: проверяет, является ли строка s
подстрока T
,Trie::suffix(string s)
— логическое: проверяет, является ли строка s
это суффикс к T
,Trie::count(string s)
— целое число: возвращает количество подстрок s
появляется повсюду T
(возвращает 0, если нет s
не происходит)Trie::longestRepeat()
— строка: находит самую длинную подстроку в T
что происходит более одного раза.Trie::longestSubstring(string S)
— строка: находит самую длинную общую подстроку S
а также T
Другая важная информация: Trie
структура данных опирается на две другие структуры данных — Node
а также Edge
, каждый Node
имеет вектор outgoing_edges
которые указывают на другие узлы.
Как я могу реализовать дополнительную функцию, Trie::show()
который генерирует исполнение дерева? Поскольку в C ++ нет встроенных графических библиотек, я предполагаю, что вынужден прибегнуть к какой-то функции типа ASCII-art. Как я мог бы построить это, учитывая функции выше?
Задача ещё не решена.
Других решений пока нет …