擅长:python、mysql、java
<p>我的变体:</p>
<ol>
<li>将整个图形拆分为边。将每条边添加到一个集合中。在</li>
<li>在下一次迭代中,在步骤2中生成的边的两个外部节点之间绘制边。这意味着将新节点(及其相应的集)添加到原始边的源集中。(基本集合并)</li>
<li>重复2次,直到要查找的两个节点位于同一集中。您还需要在步骤1之后进行检查(以防两个节点相邻)。在</li>
</ol>
<p>一开始,你的节点将是各自的集合</p>
<pre><code> o-o o-o o1-o3 o2 o3-o4
\ / |
o-o-o-o o2 o1-o3-o4
</code></pre>
<p>随着算法的进展和集合的合并,它的输入相对减少了一半。在</p>
<p>在这个例子中,我正在检查一些图形中的组件。在将所有边合并到它们的最大可能集合之后,我只剩下3个集合,给出了3个断开的组件。
(组件数是算法完成时可以获得的集合数。)</p>
<p>一个可能的图形(对于上面的树):</p>
^{pr2}$