📄 pattern_8h-source.html
字号:
<a name="l00120"></a>00120 <a name="l00121"></a>00121 <a class="code" href="classpattern.html#71d3931874255439f8467d3bb3ee2d40">clone</a>->_canonical_code = _canonical_code;<a name="l00122"></a>00122 <a class="code" href="classpattern.html#71d3931874255439f8467d3bb3ee2d40">clone</a>->_canonical_code.update_code();<a name="l00123"></a>00123 <a name="l00124"></a>00124 <span class="keywordflow">return</span> <a class="code" href="classpattern.html#71d3931874255439f8467d3bb3ee2d40">clone</a>;<a name="l00125"></a>00125 }<span class="comment">//end clone()</span><a name="l00126"></a>00126 <a name="l00127"></a>00127 <span class="keywordtype">int</span> rmost_vid()<span class="keyword"> const </span>{<span class="keywordflow">return</span> _rmost_vid;};<a name="l00128"></a>00128 <span class="keywordtype">void</span> set_rmost_vid(<span class="keyword">const</span> <span class="keywordtype">int</span>& rvid) {_rmost_vid=rvid;}<a name="l00129"></a>00129 <a name="l00130"></a>00130 <span class="keywordtype">bool</span> is_canonical()<span class="keyword"> const </span>{<span class="keywordflow">return</span> _is_canonical;}<a name="l00131"></a>00131 <a name="l00132"></a>00132 <span class="keyword">const</span> VERTEX_T& rmost_vertex()<span class="keyword"> const </span>{<a name="l00133"></a>00133 <span class="keywordtype">int</span> rvid=rmost_vid();<a name="l00134"></a>00134 CONST_IT it=_graph.vertex_vals(rvid);<a name="l00135"></a>00135 <span class="keywordflow">return</span> it->v;<a name="l00136"></a>00136 }<a name="l00137"></a>00137 <a name="l00139"></a><a class="code" href="classpattern.html#4e1adb7fbf83795c46cdedd9d5a0c923">00139</a> <span class="keyword">const</span> VERTEX_T& <a class="code" href="classpattern.html#4e1adb7fbf83795c46cdedd9d5a0c923">label</a>(<span class="keyword">const</span> <span class="keywordtype">int</span>& vid)<span class="keyword"> const </span>{<a name="l00140"></a>00140 CONST_IT it=_graph.vertex_vals(vid);<a name="l00141"></a>00141 <span class="keywordflow">return</span> it->v;<a name="l00142"></a>00142 }<span class="comment">//end label()</span><a name="l00143"></a>00143 <a name="l00145"></a><a class="code" href="classpattern.html#a7a0c9e586643031469f44d15ead5d37">00145</a> <span class="keywordtype">int</span> <a class="code" href="classpattern.html#a7a0c9e586643031469f44d15ead5d37">add_vertex</a>(<span class="keyword">const</span> VERTEX_T& v) {<a name="l00146"></a>00146 set_rmost_vid(_graph.add_vertex(v));<a name="l00147"></a>00147 <a name="l00148"></a>00148 <span class="keywordflow">return</span> rmost_vid();<a name="l00149"></a>00149 }<span class="comment">//end add_vertex()</span><a name="l00150"></a>00150 <a name="l00151"></a>00151 <a name="l00154"></a><a class="code" href="classpattern.html#ac5dd176b16659ebd9fc665a1a77eea2">00154</a> <span class="keywordtype">void</span> <a class="code" href="classpattern.html#ac5dd176b16659ebd9fc665a1a77eea2">add_out_edge</a>(<span class="keyword">const</span> <span class="keywordtype">int</span>& src, <span class="keyword">const</span> <span class="keywordtype">int</span>& dest, <span class="keyword">const</span> EDGE_T& e) {<a name="l00155"></a>00155 _graph.add_out_edge(src, dest, e);<a name="l00156"></a>00156 }<a name="l00157"></a>00157 <a name="l00161"></a><a class="code" href="classpattern.html#40590cc9a4598df65983f7716aa3c7fa">00161</a> <span class="keywordtype">void</span> <a class="code" href="classpattern.html#40590cc9a4598df65983f7716aa3c7fa">add_in_edge</a>(<span class="keyword">const</span> <span class="keywordtype">int</span>& dest, <span class="keyword">const</span> <span class="keywordtype">int</span>& src, <span class="keyword">const</span> EDGE_T& e) {<a name="l00162"></a>00162 _graph.add_in_edge(dest, src, e);<a name="l00163"></a>00163 }<a name="l00164"></a>00164 <a name="l00167"></a><a class="code" href="classpattern.html#5a5426b0329b48ae69012d2a4acc890f">00167</a> EIT_PAIR <a class="code" href="classpattern.html#5a5426b0329b48ae69012d2a4acc890f">out_edges</a>(<span class="keyword">const</span> <span class="keywordtype">int</span>& idval) { <a name="l00168"></a>00168 <span class="keywordflow">return</span> _graph.out_edges(idval);<a name="l00169"></a>00169 <a name="l00170"></a>00170 }<a name="l00171"></a>00171 <a name="l00172"></a>00172 CONST_EIT_PAIR <a class="code" href="classpattern.html#5a5426b0329b48ae69012d2a4acc890f">out_edges</a>(<span class="keyword">const</span> <span class="keywordtype">int</span>& idval)<span class="keyword"> const </span>{ <a name="l00173"></a>00173 <span class="comment">//cout <<_graph;</span><a name="l00174"></a>00174 <span class="keywordflow">return</span> _graph.out_edges(idval);<a name="l00175"></a>00175 }<a name="l00176"></a>00176 <a name="l00177"></a>00177 <a name="l00180"></a><a class="code" href="classpattern.html#0493e9235ac66ab55141ad28a5884e11">00180</a> EIT_PAIR <a class="code" href="classpattern.html#0493e9235ac66ab55141ad28a5884e11">in_edges</a>(<span class="keyword">const</span> <span class="keywordtype">int</span>& idval) {<a name="l00181"></a>00181 <span class="keywordflow">return</span> _graph.in_edges(idval);<a name="l00182"></a>00182 }<a name="l00183"></a>00183 <a name="l00184"></a>00184 CONST_EIT_PAIR <a class="code" href="classpattern.html#0493e9235ac66ab55141ad28a5884e11">in_edges</a>(<span class="keyword">const</span> <span class="keywordtype">int</span>& idval)<span class="keyword"> const </span>{<a name="l00185"></a>00185 <span class="keywordflow">return</span> _graph.in_edges(idval);<a name="l00186"></a>00186 }<a name="l00187"></a>00187 <a name="l00188"></a>00188 <span class="keywordtype">bool</span> get_out_edge(<span class="keyword">const</span> <span class="keywordtype">int</span>& src, <span class="keyword">const</span> <span class="keywordtype">int</span>& dest, EDGE_T& e)<span class="keyword"> const </span>{ <a name="l00189"></a>00189 <span class="keywordflow">return</span> _graph.get_out_edge(src, dest, e);<a name="l00190"></a>00190 }<a name="l00191"></a>00191 <a name="l00192"></a>00192 <span class="keywordtype">bool</span> get_in_edge(<span class="keyword">const</span> <span class="keywordtype">int</span>& src, <span class="keyword">const</span> <span class="keywordtype">int</span>& dest, <span class="keyword">const</span> EDGE_T& e)<span class="keyword"> const </span>{ <a name="l00193"></a>00193 <span class="keywordflow">return</span> _graph.get_in_edge(src, dest, e);<a name="l00194"></a>00194 }<a name="l00195"></a>00195 <a name="l00196"></a>00196 <span class="comment">// Unique int identifier for a pattern.</span><a name="l00197"></a>00197 CC_STORAGE_TYPE <a name="l00198"></a>00198 pat_id()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> _canonical_code.getCode(); } <a name="l00199"></a>00199 <a name="l00200"></a>00200 <span class="keywordtype">bool</span> operator< (const pattern<PATTERN_PROPS, MINING_PROPS, ST, CC, ALLOC> rhs) <span class="keyword">const</span>;<a name="l00201"></a>00201 <a name="l00202"></a>00202 <span class="keyword">friend</span> ostream& operator<< <>(ostream&, <span class="keyword">const</span> <a class="code" href="classpattern.html">pattern<PATTERN_PROPS, MINING_PROPS, ST, CC, ALLOC></a>*);<a name="l00203"></a>00203 <a name="l00204"></a>00204 <span class="keyword">friend</span> <span class="keywordtype">bool</span> check_isomorphism <>(PATTERN* <span class="keyword">const</span>& pat);<a name="l00205"></a>00205 <a name="l00206"></a>00206 <span class="comment">// friend function - this shall be specialized on pattern-props</span><a name="l00207"></a>00207 <span class="keyword">friend</span> <span class="keywordtype">void</span> update_rmost_path <>(<a class="code" href="classpattern.html">pattern<PATTERN_PROPS, MINING_PROPS, ST, CC, ALLOC></a>*<span class="keyword">const</span>&);<a name="l00208"></a>00208 <a name="l00209"></a>00209 <span class="keywordtype">void</span> set_support(<span class="keyword">const</span> <a class="code" href="classpattern__support.html">pattern_support<MINING_PROPS></a>* <span class="keyword">const</span>& pat_sup) {<a name="l00210"></a>00210 _pat_sup.<a class="code" href="classpattern__support.html#a54cccfd00ce22f6dae6ebc03af412da">set_vals</a>(pat_sup); <a name="l00211"></a>00211 }<a name="l00212"></a>00212 <a name="l00217"></a><a class="code" href="classpattern.html#93f1532b84b16da807a4e1386b95dcbc">00217</a> <span class="keywordtype">void</span> <a class="code" href="classpattern.html#93f1532b84b16da807a4e1386b95dcbc">set_sup</a>(<span class="keyword">const</span> pair<int, int>& s) {<a name="l00218"></a>00218 _pat_sup.<a class="code" href="classpattern__support.html#ceb8296801b8f94ae5ec5e00f0867b9d">set_sup</a>(s); <a name="l00219"></a>00219 _is_canonical=<span class="keyword">true</span>;<a name="l00220"></a>00220 }<a name="l00221"></a>00221 <a name="l00222"></a>00222 <span class="keywordtype">bool</span> is_freq(<span class="keywordtype">int</span> min_sup) {<a name="l00223"></a>00223 <span class="keywordflow">return</span> _pat_sup.<a class="code" href="classpattern__support.html#46d0c7ce607ea9a387099dce7629772e">is_freq</a>(min_sup);<a name="l00224"></a>00224 }<a name="l00225"></a>00225 <a name="l00226"></a>00226 <span class="keywordtype">bool</span> is_valid(<span class="keyword">const</span> <span class="keywordtype">int</span>& ms)<span class="keyword"> const </span>{ <a name="l00227"></a>00227 <span class="keywordflow">return</span> (_pat_sup.<a class="code" href="classpattern__support.html#5ff596f63780bc6e7a5ebbbf4a17c791">is_valid</a>(ms));<a name="l00228"></a>00228 }<a name="l00229"></a>00229 <a name="l00233"></a><a class="code" href="classpattern.html#b7c9f6193c9eccef49f6ce8fcc837661">00233</a> <span class="keywordtype">void</span> <a class="code" href="classpattern.html#b7c9f6193c9eccef49f6ce8fcc837661">init_canonical_code</a>(<span class="keyword">const</span> CC_INIT_TYPE& cc) {<a name="l00234"></a>00234 _canonical_code.init(cc, <span class="keyword">this</span>);<a name="l00235"></a>00235 }<a name="l00236"></a>00236 <a name="l00237"></a>00237 <span class="keyword">const</span> RMP_T& rmost_path()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> _rmost_path;}<a name="l00238"></a>00238 <a name="l00239"></a>00239 <span class="keywordtype">void</span> update_rmpath(<span class="keywordtype">int</span> val) {<a name="l00240"></a>00240 _rmost_path.push_back(val);<a name="l00241"></a>00241 }<a name="l00242"></a>00242 <a name="l00243"></a>00243 <span class="keyword">const</span> CAN_CODE& <a class="code" href="classcanonical__code.html">canonical_code</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> _canonical_code;}<a name="l00244"></a>00244 <a class="code" href="classpattern__support.html">pattern_support<MINING_PROPS></a> _pat_sup; <a name="l00245"></a>00245 <a name="l00246"></a>00246 <span class="keyword">private</span>:<a name="l00247"></a>00247 <a name="l00248"></a>00248 ST _graph;<a name="l00249"></a>00249 CAN_CODE _canonical_code;<a name="l00250"></a>00250 <span class="keywordtype">int</span> _rmost_vid; <span class="comment">//id of right-most vertex of this pattern</span><a name="l00251"></a>00251 <span class="keywordtype">bool</span> _is_canonical;<a name="l00252"></a>00252 RMP_T _rmost_path; <span class="comment">//ids of vertices on right most path</span><a name="l00253"></a>00253 <a name="l00254"></a>00254 }; <span class="comment">//end class pattern</span><a name="l00255"></a>00255 <a name="l00256"></a>00256 <span class="preprocessor">#endif</span></pre></div><hr size="1"><address style="align: right;"><small>Generated on Wed Jul 26 14:01:08 2006 for DMTL by <a href="http://www.doxygen.org/index.html"><img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.7 </small></address></body></html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -