作为编程任务的一部分,我被要求使用C ++实现后缀trie。我们只允许使用standard C++11 libraries来实现此功能。
后缀trie的实现由数据结构Trie(string T)
组成,它为给定的字符串s
构造一个trie。类Trie
中的函数如下:
Trie::Trie(string T)
- 构造函数:生成trie。Trie::substring(string s)
- 布尔值:检查字符串s
是否为T
的子字符串。Trie::suffix(string s)
- 布尔值:检查字符串s
是否是T
的后缀。Trie::count(string s)
- integer:返回s
中子字符串T
出现的次数(如果没有s
则返回0)Trie::longestRepeat()
- string:查找T
中最长的子字符串,该字符串多次出现。Trie::longestSubstring(string S)
- 字符串:查找由S
和T
共享的最长公共子字符串其他相关信息:Trie
数据结构依赖于另外两种数据结构 - Node
和Edge
。每个Node
都有一个outgoing_edges
向量,指向其他节点。
我怎样才能实现一个额外的函数,Trie::show()
生成trie的再现?由于C ++没有内置的图形库,我认为我不得不求助于某种ASCII艺术类型的函数。考虑到上述功能,我怎么能建立这个?