⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 apriori__trie_8cpp-source.html

📁 APRIOR算法的源程序.希望对大家有用,谁有FP-GROWTH算法的程序请给我发一份,谢谢.anne2422843@sina.com.cn
💻 HTML
📖 第 1 页 / 共 2 页
字号:
00124    <a class="code" href="classInput__Output__Manager.html">Input_Output_Manager</a>&amp; input_output_manager)00125 {00126    vector&lt;Edge&gt;::iterator itEdge = trie-&gt;<a class="code" href="classTrie.html#r1">edgevector</a>.begin();00127    <span class="keywordflow">if</span>( (*itEdge).subtrie-&gt;edgevector.empty() )00128    {00129          vector&lt;Edge&gt;::iterator itEdge2;00130          <a class="code" href="classTrie.html">Trie</a>* toExtend;00131          <span class="keywordflow">while</span>( itEdge != trie-&gt;<a class="code" href="classTrie.html#r1">edgevector</a>.end() )00132          {00133             maybe_candidate.insert((*itEdge).label);00134             toExtend = (*itEdge).subtrie;00135             input_output_manager.<a class="code" href="classInput__Output__Manager.html#a5">write_out_basket_and_counter</a>( 00136                maybe_candidate, toExtend-&gt;<a class="code" href="classTrie.html#r0">counter</a> );00137             <span class="keywordflow">for</span>( itEdge2 = itEdge + 1; itEdge2 != trie-&gt;<a class="code" href="classTrie.html#r1">edgevector</a>.end(); 00138                  itEdge2++ )00139             {00140                maybe_candidate.insert( (*itEdge2).label );00141                <span class="keywordflow">if</span>( <a class="code" href="classApriori__Trie.html#b0">is_all_subset_frequent</a>( maybe_candidate) )00142                   toExtend-&gt;<a class="code" href="classTrie.html#d0">add_empty_state</a>( (*itEdge2).label );00143                maybe_candidate.erase( (*itEdge2).label );00144             }00145                 <span class="comment">// we know that state toExtend </span>00146                 <span class="comment">// will not have any more children!</span>00147             (vector&lt;Edge&gt;(toExtend-&gt;<a class="code" href="classTrie.html#r1">edgevector</a>)).swap(toExtend-&gt;<a class="code" href="classTrie.html#r1">edgevector</a>);  00148             00149             maybe_candidate.erase((*itEdge).label);00150             <span class="keywordflow">if</span>( toExtend-&gt;<a class="code" href="classTrie.html#r1">edgevector</a>.empty() ) 00151             {00152                <span class="keyword">delete</span> (*itEdge).subtrie;00153                itEdge = trie-&gt;<a class="code" href="classTrie.html#r1">edgevector</a>.erase(itEdge);00154             }00155             <span class="keywordflow">else</span> itEdge++;00156          }00157    }00158    <span class="keywordflow">else</span>00159    {00160       <span class="keywordflow">while</span>( itEdge != trie-&gt;<a class="code" href="classTrie.html#r1">edgevector</a>.end() )00161       {00162 00163          maybe_candidate.insert((*itEdge).label);00164          <a class="code" href="classApriori__Trie.html#b2">candidate_generation_assist</a>((*itEdge).subtrie, 00165                                      maybe_candidate, input_output_manager );00166          maybe_candidate.erase((*itEdge).label);00167          <span class="keywordflow">if</span>((*itEdge).subtrie-&gt;edgevector.empty())00168          {00169             <span class="keyword">delete</span> (*itEdge).subtrie;00170             itEdge = trie-&gt;<a class="code" href="classTrie.html#r1">edgevector</a>.erase(itEdge);00171          }00172          <span class="keywordflow">else</span> itEdge++;00173       }00174    }00175 }00176 <a name="l00183"></a><a class="code" href="classApriori__Trie.html#b3">00183</a> <span class="keywordtype">void</span> <a class="code" href="classApriori__Trie.html#b3">Apriori_Trie::find_candidate_two</a>( <span class="keyword">const</span> vector&lt;itemtype&gt;&amp; basket, 00184                                        <span class="keyword">const</span> countertype counter )00185 {00186    <span class="keywordflow">if</span>( basket.size() &gt; 1)00187    {00188       vector&lt;itemtype&gt;::const_iterator it1_basket,00189                                        it2_basket;00190 00191       <span class="keywordflow">for</span>( it1_basket = basket.begin(); it1_basket != basket.end()-1; 00192            it1_basket++)00193          <span class="keywordflow">for</span>( it2_basket = it1_basket+1; it2_basket != basket.end(); 00194               it2_basket++)00195             <a class="code" href="classApriori__Trie.html#p1">temp_counter_array</a>[*it1_basket][*it2_basket-*it1_basket-1] 00196                += counter;00197    }00198 }00199 <a name="l00203"></a><a class="code" href="classApriori__Trie.html#b4">00203</a> <span class="keywordtype">void</span> <a class="code" href="classApriori__Trie.html#b4">Apriori_Trie::delete_infrequent_two</a>( <span class="keyword">const</span> <span class="keywordtype">double</span> min_occurrence )00204 {00205    vector&lt;Edge&gt;::size_type stateIndex_1,00206                             stateIndex_2;00207    <span class="keywordflow">for</span>( stateIndex_1 = 0; stateIndex_1 &lt; <a class="code" href="classApriori__Trie.html#p0">main_trie</a>.<a class="code" href="classTrie.html#r1">edgevector</a>.size()-1; 00208         stateIndex_1++ )00209    {00210       <span class="keywordflow">for</span>( stateIndex_2 = 0; 00211            stateIndex_2 &lt; <a class="code" href="classApriori__Trie.html#p0">main_trie</a>.<a class="code" href="classTrie.html#r1">edgevector</a>.size() - 1 - stateIndex_1; 00212            stateIndex_2++ )00213       {00214         <span class="keywordflow">if</span>( <a class="code" href="classApriori__Trie.html#p1">temp_counter_array</a>[stateIndex_1][stateIndex_2] &gt; min_occurrence )00215            <a class="code" href="classApriori__Trie.html#p0">main_trie</a>.<a class="code" href="classTrie.html#r1">edgevector</a>[stateIndex_1].subtrie-&gt;<a class="code" href="classTrie.html#d0">add_empty_state</a>( 00216               stateIndex_1 + stateIndex_2 + 1, 00217               <a class="code" href="classApriori__Trie.html#p1">temp_counter_array</a>[stateIndex_1][stateIndex_2] );00218       }00219       <a class="code" href="classApriori__Trie.html#p1">temp_counter_array</a>[stateIndex_1].clear();00220       vector&lt;countertype&gt;().swap(<a class="code" href="classApriori__Trie.html#p1">temp_counter_array</a>[stateIndex_1]);   00222    }00223    <a class="code" href="classApriori__Trie.html#p1">temp_counter_array</a>.clear();00224 00225    vector&lt; vector&lt;countertype&gt; &gt;().swap(<a class="code" href="classApriori__Trie.html#p1">temp_counter_array</a>);   00227    vector&lt;Edge&gt;::iterator it= <a class="code" href="classApriori__Trie.html#p0">main_trie</a>.<a class="code" href="classTrie.html#r1">edgevector</a>.begin();00228    <span class="keywordflow">while</span>( it!=<a class="code" href="classApriori__Trie.html#p0">main_trie</a>.<a class="code" href="classTrie.html#r1">edgevector</a>.end() )00229       <span class="keywordflow">if</span>((*it).subtrie-&gt;edgevector.empty())00230       {00231          <span class="keyword">delete</span> (*it).subtrie;00232          it = <a class="code" href="classApriori__Trie.html#p0">main_trie</a>.<a class="code" href="classTrie.html#r1">edgevector</a>.erase(it);00233       }00234       <span class="keywordflow">else</span> it++;00235 }</pre></div><hr size="1"><address style="align: right;"><small>Generated on Fri Mar 11 14:48:06 2005 for APRIORI algorithm by&nbsp;<a href="http://www.doxygen.org/index.html"><img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address></body></html>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -