2011-12-03 51 views
0

我有一些序列,因为这些C++ FP树或前缀树

(100) - (102) - (103) - (104,106) - (108) 
(101) - (103) 
(102) - (106) 

有一些有效的实现的前缀树或FP树或类似在C + +?

+0

当我正在研究的一个类似的算法最佳页面执行自己的,我发现[redixtree](http://code.google.com/p/radixtree/) – Yappie

回答

1

我不明白你在说什么......但是,如果你要在这里建一个FP树是我发现

FP Tree Algorithm

0

由于给定的数据似乎没有以任何标准符号表示,因此尚不清楚您的具体情况。

如果前缀只是整数值之间的几个共享的初始小数位,它们可能不会对数据存储产生任何显着影响。在将值插入数据结构之前,您可以减去100,将值存储为char,并在检索后添加100,但这可能不值得。

可能您应该将序列的序列存储为std::deque< std::vector<int> >,其中vector元素已排序。除非存在我看不到的模式,或者我误解了问题,否则在查找哪些序列包含给定数字时的最佳性能必须是序列数中的O(N)乘以序列长度中的O(lg N) 。

+0

不管他们是如何构造我的数据的。 我很喜欢有一个数据结构,允许我存储序列,例如abc,de,f 特别是我需要的,并且如果序列x的前缀等于已存储的某个序列,则有效地搜索: 示例:我有abc- d-和 如果abc等于其他已存储的某些前缀sequnza,我看起来效率更高。使用前缀树 – Safari

+0

GgSalent:但您的示例不包含任何常见序列前缀。你需要放慢速度,校对和纠正错别字,我无法理解这些。 – Potatoswatter