2011-12-03 16 views
0

私はいくつかの効率的な実装はC + +でプレフィックスツリーやFP-ツリーまたは類似しているこれらのC++ FP-ツリーまたはPrefixツリー

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

などの一部の配列を有していますか?

+0

を見つけた最良のページですありません独自の実装、私は[redixtree](http://code.google.com/p/radixtree/) – Yappie

答えて

1

私はあなたが何を言っている理解し...しかし、あなたはここでFPツリーを構築する必要がある場合、私はのために同様のアルゴリズムを研究していたとき、私は

FP Tree Algorithm

0

与えられたデータが標準表記ではないように見えるので、あなたが持っているものが正確にはわかりません。

接頭辞が整数値の間にある少数の共有された最初の10進数である場合、おそらくデータ格納に大きな違いはありません。データ構造に値を挿入する前に100を引いて、値をcharとして保存し、取得後に100を追加することもできますが、おそらくそれは価値がありません。

おそらく、vector要素がソートされているstd::deque< std::vector<int> >としてシーケンスのシーケンスを格納する必要があります。私が見ることができないか、問題を誤解しているパターンがない限り、与えられた数を含むシーケンスを見つけるのに最適な性能は、シーケンス長さO(lg N)のシーケンス数ではO(N) 。

+0

彼らがどのように私のデータを構造化されているにもかかわらず見つけた.. 私は私が格納することができるデータ構造を持っているシーケンス、例えばabc、de、f 特に私が必要とするのは、シーケンスxが既に格納されているシーケンスと同じプレフィックスを持つ場合、効率的に検索することです。 例:abc- d-と abcがいくつかのプレフィックスsequnzaと等しい場合は、効率的に見えます。プレフィックスツリーを使用してこれを行うには、他のものがあります – Safari

+0

GgSalent:しかし、あなたの例には一般的なシーケンスプレフィックスは含まれていません。あなたは、減速し、校正し、誤字を訂正する必要があります。私はこのことの多くを理解できません。 – Potatoswatter