a00004.html 52 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901
  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
  2. <html>
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
  5. <title>GTL - Graph Template Library: biconnectivity Class Reference</title>
  6. <link href="doxygen.css" rel="stylesheet" type="text/css">
  7. </head>
  8. <body>
  9. <p class="links">
  10. <a href="../index.html">Home</a> |
  11. Documentation |
  12. <a href="../register.html">Download</a> |
  13. <a href="../platforms.html">Platforms</a> |
  14. <a href="../refer.html">Projects</a> |
  15. <a href="../lists.html">Mailing Lists</a> |
  16. <a href="../history.html">Version History</a>
  17. </p>
  18. <!-- Generated by Doxygen 1.5.3 -->
  19. <div class="tabs">
  20. <ul>
  21. <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
  22. <li class="current"><a href="classes.html"><span>Classes</span></a></li>
  23. <li><a href="files.html"><span>Files</span></a></li>
  24. <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
  25. </ul>
  26. </div>
  27. <div class="tabs">
  28. <ul>
  29. <li><a href="classes.html"><span>Alphabetical&nbsp;List</span></a></li>
  30. <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
  31. <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
  32. <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
  33. </ul>
  34. </div>
  35. <h1>biconnectivity Class Reference</h1><!-- doxytag: class="biconnectivity" --><!-- doxytag: inherits="dfs" -->Biconnectivity-test and low-numbers.
  36. <a href="#_details">More...</a>
  37. <p>
  38. <div class="dynheader">
  39. Inheritance diagram for biconnectivity:</div>
  40. <div class="dynsection">
  41. <p><center><img src="a00115.gif" border="0" usemap="#a00116" alt="Inheritance graph"></center>
  42. <map name="a00116">
  43. <area shape="rect" href="a00008.html" title="Depth&#45;First&#45;Search (DFS) algorithm." alt="" coords="37,81,77,105"><area shape="rect" href="a00001.html" title="Abstract baseclass for all algoritm&#45;classes." alt="" coords="19,7,96,31"></map>
  44. <center><font size="2">[<a href="graph_legend.html">legend</a>]</font></center></div>
  45. <div class="dynheader">
  46. Collaboration diagram for biconnectivity:</div>
  47. <div class="dynsection">
  48. <p><center><img src="a00117.gif" border="0" usemap="#a00118" alt="Collaboration graph"></center>
  49. <map name="a00118">
  50. <area shape="rect" href="a00008.html" title="Depth&#45;First&#45;Search (DFS) algorithm." alt="" coords="655,137,695,161"><area shape="rect" href="a00001.html" title="Abstract baseclass for all algoritm&#45;classes." alt="" coords="401,73,479,97"><area shape="rect" href="a00020.html" title="A node in a graph." alt="" coords="415,208,465,232"><area shape="rect" title="last" alt="" coords="463,215,471,223"><area shape="rect" title="last" alt="" coords="751,195,759,203"><area shape="rect" title="start" alt="" coords="463,209,471,217"><area shape="rect" title="start" alt="" coords="651,153,659,161"><area shape="rect" title="int_node" alt="" coords="411,205,419,213"><area shape="rect" title="int_node" alt="" coords="463,205,471,213"><area shape="rect" href="a00021.html" title="node_map\&lt; int \&gt;" alt="" coords="379,8,501,32"><area shape="rect" title="low_num\ncut_count" alt="" coords="497,5,505,13"><area shape="rect" title="low_num\ncut_count" alt="" coords="795,179,803,187"><area shape="rect" title="comp_number\ndfs_number" alt="" coords="475,29,483,37"><area shape="rect" title="comp_number\ndfs_number" alt="" coords="661,133,669,141"><area shape="rect" href="a00019.html" title="ne_map\&lt; node, int, graph, allocator\&lt; int \&gt; \&gt;" alt="" coords="21,8,304,32"><area shape="rect" href="a00011.html" title="edge_map\&lt; int \&gt;" alt="" coords="379,121,501,145"><area shape="rect" title="used" alt="" coords="497,133,505,141"><area shape="rect" title="used" alt="" coords="651,144,659,152"><area shape="rect" href="a00019.html" title="ne_map\&lt; edge, int, graph, allocator\&lt; int \&gt; \&gt;" alt="" coords="21,121,304,145"><area shape="rect" href="a00021.html" title="node_map\&lt; node \&gt;" alt="" coords="371,271,509,295"><area shape="rect" title="first_child" alt="" coords="505,277,513,285"><area shape="rect" title="first_child" alt="" coords="776,204,784,212"><area shape="rect" title="preds" alt="" coords="495,267,503,275"><area shape="rect" title="preds" alt="" coords="664,159,672,167"><area shape="rect" href="a00019.html" title="ne_map\&lt; node, node, graph, allocator\&lt; node \&gt; \&gt;" alt="" coords="5,271,320,295"></map>
  51. <center><font size="2">[<a href="graph_legend.html">legend</a>]</font></center></div>
  52. <p>
  53. <a href="a00119.html">List of all members.</a><table border="0" cellpadding="0" cellspacing="0">
  54. <tr><td></td></tr>
  55. <tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>
  56. <tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00004.html#9f0c49a04d285f3e45520af863d6cf50">biconnectivity</a> ()</td></tr>
  57. <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Creates <a class="el" href="a00004.html" title="Biconnectivity-test and low-numbers.">biconnectivity</a> <a class="el" href="a00001.html" title="Abstract baseclass for all algoritm-classes.">algorithm</a> object. <a href="#9f0c49a04d285f3e45520af863d6cf50"></a><br></td></tr>
  58. <tr><td class="memItemLeft" nowrap align="right" valign="top">virtual&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00004.html#f8e2bb061de4a08f95a2a3a94fdbd797">~biconnectivity</a> ()</td></tr>
  59. <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Destroys <a class="el" href="a00004.html" title="Biconnectivity-test and low-numbers.">biconnectivity</a> <a class="el" href="a00001.html" title="Abstract baseclass for all algoritm-classes.">algorithm</a> object. <a href="#f8e2bb061de4a08f95a2a3a94fdbd797"></a><br></td></tr>
  60. <tr><td class="memItemLeft" nowrap align="right" valign="top">virtual int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00004.html#5db0b38d8d01af52720d6941103de4f2">check</a> (<a class="el" href="a00014.html">graph</a> &amp;G)</td></tr>
  61. <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Checks whether the <a class="el" href="a00001.html" title="Abstract baseclass for all algoritm-classes.">algorithm</a> can be applied. <a href="#5db0b38d8d01af52720d6941103de4f2"></a><br></td></tr>
  62. <tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00004.html#a1a4b091fd8b2bbea2b36b91bab713af">reset</a> ()</td></tr>
  63. <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Resets algorithm. <a href="#a1a4b091fd8b2bbea2b36b91bab713af"></a><br></td></tr>
  64. <tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00004.html#e0d0b47a16da24c0f124cb989ccf5846">low_number</a> (const <a class="el" href="a00020.html">node</a> &amp;n) const </td></tr>
  65. <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">low-number. <a href="#e0d0b47a16da24c0f124cb989ccf5846"></a><br></td></tr>
  66. <tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00004.html#2db9457fbbfb6a832234d8455e807198">is_biconnected</a> () const </td></tr>
  67. <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Biconnectivity-test. <a href="#2db9457fbbfb6a832234d8455e807198"></a><br></td></tr>
  68. <tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00004.html#f6fe3286b7cb24e0da460cfdbf733d79">store_components</a> () const </td></tr>
  69. <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns whether the storing of <a class="el" href="a00007.html" title="Connected components algorithm.">components</a> is enabled. <a href="#f6fe3286b7cb24e0da460cfdbf733d79"></a><br></td></tr>
  70. <tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00004.html#b7c9e256a4d7a4ffea33b20f014e1f69">store_components</a> (bool set)</td></tr>
  71. <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Enables or disables the storing of biconnected <a class="el" href="a00007.html" title="Connected components algorithm.">components</a>. <a href="#b7c9e256a4d7a4ffea33b20f014e1f69"></a><br></td></tr>
  72. <tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00004.html#774fd08203a6d164605afc4cdc8b9201">make_biconnected</a> (bool set)</td></tr>
  73. <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">If enabled edges will be added to the <a class="el" href="a00014.html" title="A directed or undirected graph.">graph</a> in order to make it biconnected, if cutpoints are discovered. <a href="#774fd08203a6d164605afc4cdc8b9201"></a><br></td></tr>
  74. <tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00004.html#2db912e8bc1a89e431116824434e836d">make_biconnected</a> () const </td></tr>
  75. <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns whether addition of edges neccessary to make <a class="el" href="a00014.html" title="A directed or undirected graph.">graph</a> biconnected is enabled. <a href="#2db912e8bc1a89e431116824434e836d"></a><br></td></tr>
  76. <tr><td class="memItemLeft" nowrap align="right" valign="top">list&lt; <a class="el" href="a00010.html">edge</a> &gt;::iterator&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00004.html#c5295da180114bffbbfd621d644d4c58">additional_begin</a> ()</td></tr>
  77. <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Begin of edges added to make <a class="el" href="a00014.html" title="A directed or undirected graph.">graph</a> biconnected. <a href="#c5295da180114bffbbfd621d644d4c58"></a><br></td></tr>
  78. <tr><td class="memItemLeft" nowrap align="right" valign="top">list&lt; <a class="el" href="a00010.html">edge</a> &gt;::iterator&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00004.html#447a86f387efd181b25b8bacf3365e75">additional_end</a> ()</td></tr>
  79. <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">End of edges added to make <a class="el" href="a00014.html" title="A directed or undirected graph.">graph</a> biconnected. <a href="#447a86f387efd181b25b8bacf3365e75"></a><br></td></tr>
  80. <tr><td class="memItemLeft" nowrap align="right" valign="top">cutpoint_iterator&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00004.html#473197552874aaf148e847838144eed7">cut_points_begin</a> ()</td></tr>
  81. <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Start iteration over all cutpoints found. <a href="#473197552874aaf148e847838144eed7"></a><br></td></tr>
  82. <tr><td class="memItemLeft" nowrap align="right" valign="top">cutpoint_iterator&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00004.html#78cb06c1d056b9519622a67a92e85b6e">cut_points_end</a> ()</td></tr>
  83. <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">End of iteration over all cutpoints. <a href="#78cb06c1d056b9519622a67a92e85b6e"></a><br></td></tr>
  84. <tr><td class="memItemLeft" nowrap align="right" valign="top">component_iterator&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00004.html#c0b7253533edc3f1412f771cb35bf04a">components_begin</a> ()</td></tr>
  85. <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Start iteration over all biconnected <a class="el" href="a00007.html" title="Connected components algorithm.">components</a> (if enabled during last call to run). <a href="#c0b7253533edc3f1412f771cb35bf04a"></a><br></td></tr>
  86. <tr><td class="memItemLeft" nowrap align="right" valign="top">component_iterator&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00004.html#0bd1c70975e664174e591efd64f8dc71">components_end</a> ()</td></tr>
  87. <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">End of iteration over all biconnected <a class="el" href="a00007.html" title="Connected components algorithm.">components</a>. <a href="#0bd1c70975e664174e591efd64f8dc71"></a><br></td></tr>
  88. <tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00004.html#c984168e3c2b1b92fc20def2b38fb07f">number_of_components</a> () const </td></tr>
  89. <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Number von biconnected <a class="el" href="a00007.html" title="Connected components algorithm.">components</a> detected during the last run. <a href="#c984168e3c2b1b92fc20def2b38fb07f"></a><br></td></tr>
  90. <tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00004.html#c13bfac43192225a9161b0bf0827f600">init_handler</a> (<a class="el" href="a00014.html">graph</a> &amp;)</td></tr>
  91. <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Handler called before the start of DFS. <a href="#c13bfac43192225a9161b0bf0827f600"></a><br></td></tr>
  92. <tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00004.html#caf5548cba90ee5b6ae3a542ac13e767">entry_handler</a> (<a class="el" href="a00014.html">graph</a> &amp;, <a class="el" href="a00020.html">node</a> &amp;, <a class="el" href="a00020.html">node</a> &amp;)</td></tr>
  93. <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Handler called when touching node <em>n</em>. <a href="#caf5548cba90ee5b6ae3a542ac13e767"></a><br></td></tr>
  94. <tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00004.html#cf4ca6d67f23498c43cfc3669c80417c">before_recursive_call_handler</a> (<a class="el" href="a00014.html">graph</a> &amp;, <a class="el" href="a00010.html">edge</a> &amp;, <a class="el" href="a00020.html">node</a> &amp;)</td></tr>
  95. <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Handler called when a unused node <em>n</em> connected to the actual node by <em>e</em> is found. <a href="#cf4ca6d67f23498c43cfc3669c80417c"></a><br></td></tr>
  96. <tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00004.html#9a2e5d5f934d5ff1d93c545414a7dab5">after_recursive_call_handler</a> (<a class="el" href="a00014.html">graph</a> &amp;, <a class="el" href="a00010.html">edge</a> &amp;, <a class="el" href="a00020.html">node</a> &amp;)</td></tr>
  97. <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Handler called after the algorithm returns from the subtree starting at <em>n</em> connected to the actual node by <em>e</em>. <a href="#9a2e5d5f934d5ff1d93c545414a7dab5"></a><br></td></tr>
  98. <tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00004.html#54c5d1deed1c326f5934f4181770612b">old_adj_node_handler</a> (<a class="el" href="a00014.html">graph</a> &amp;, <a class="el" href="a00010.html">edge</a> &amp;, <a class="el" href="a00020.html">node</a> &amp;)</td></tr>
  99. <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Handler called when a already marked node <em>n</em> connected to the actual node by <em>e</em> is found during the search of all adjacent edges of the actual node. <a href="#54c5d1deed1c326f5934f4181770612b"></a><br></td></tr>
  100. <tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00004.html#e67b0c7d2677f0f60d46995ff244a6d0">new_start_handler</a> (<a class="el" href="a00014.html">graph</a> &amp;, <a class="el" href="a00020.html">node</a> &amp;)</td></tr>
  101. <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Called when DFS is started with start-node <em>n</em>. <a href="#e67b0c7d2677f0f60d46995ff244a6d0"></a><br></td></tr>
  102. <tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00004.html#cbb12e89c368f4346f36d09888d8bfb0">leave_handler</a> (<a class="el" href="a00014.html">graph</a> &amp;, <a class="el" href="a00020.html">node</a> &amp;, <a class="el" href="a00020.html">node</a> &amp;)</td></tr>
  103. <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Handler called after all the adjacent edges of <em>n</em> have been examined. <a href="#cbb12e89c368f4346f36d09888d8bfb0"></a><br></td></tr>
  104. <tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00004.html#eade3bbc61d1046ba80ec88988f72c44">end_handler</a> (<a class="el" href="a00014.html">graph</a> &amp;)</td></tr>
  105. <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Handler called at the end of DFS. <a href="#eade3bbc61d1046ba80ec88988f72c44"></a><br></td></tr>
  106. </table>
  107. <hr><a name="_details"></a><h2>Detailed Description</h2>
  108. Biconnectivity-test and low-numbers.
  109. <p>
  110. <dl class="rcs" compact><dt><b>Date</b></dt><dd></dd></dl>
  111. <dl class="rcs" compact><dt><b>Revision</b></dt><dd></dd></dl>
  112. <p>
  113. Obviously there is a close relationship between DFS and the testing of <a class="el" href="a00004.html" title="Biconnectivity-test and low-numbers.">biconnectivity</a>. Thus this test takes advantage of the possibility to add pieces of code to the DFS-class in order to calculate the low-numbers.<p>
  114. As default no biconnected <a class="el" href="a00007.html" title="Connected components algorithm.">components</a> will be stored and no edges will be added to make the <a class="el" href="a00014.html" title="A directed or undirected graph.">graph</a> biconnected. The test will run on the whole <a class="el" href="a00014.html" title="A directed or undirected graph.">graph</a>, even if it is not connected. <hr><h2>Constructor &amp; Destructor Documentation</h2>
  115. <a class="anchor" name="9f0c49a04d285f3e45520af863d6cf50"></a><!-- doxytag: member="biconnectivity::biconnectivity" ref="9f0c49a04d285f3e45520af863d6cf50" args="()" -->
  116. <div class="memitem">
  117. <div class="memproto">
  118. <table class="memname">
  119. <tr>
  120. <td class="memname">biconnectivity::biconnectivity </td>
  121. <td>(</td>
  122. <td class="paramname"> </td>
  123. <td>&nbsp;)&nbsp;</td>
  124. <td width="100%"></td>
  125. </tr>
  126. </table>
  127. </div>
  128. <div class="memdoc">
  129. <p>
  130. Creates <a class="el" href="a00004.html" title="Biconnectivity-test and low-numbers.">biconnectivity</a> <a class="el" href="a00001.html" title="Abstract baseclass for all algoritm-classes.">algorithm</a> object.
  131. <p>
  132. <dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="a00008.html#2399808134dbabf6aa5e1b2e35a73954" title="Constructor.">dfs::dfs</a> </dd></dl>
  133. </div>
  134. </div><p>
  135. <a class="anchor" name="f8e2bb061de4a08f95a2a3a94fdbd797"></a><!-- doxytag: member="biconnectivity::~biconnectivity" ref="f8e2bb061de4a08f95a2a3a94fdbd797" args="()" -->
  136. <div class="memitem">
  137. <div class="memproto">
  138. <table class="memname">
  139. <tr>
  140. <td class="memname">virtual biconnectivity::~biconnectivity </td>
  141. <td>(</td>
  142. <td class="paramname"> </td>
  143. <td>&nbsp;)&nbsp;</td>
  144. <td width="100%"><code> [inline, virtual]</code></td>
  145. </tr>
  146. </table>
  147. </div>
  148. <div class="memdoc">
  149. <p>
  150. Destroys <a class="el" href="a00004.html" title="Biconnectivity-test and low-numbers.">biconnectivity</a> <a class="el" href="a00001.html" title="Abstract baseclass for all algoritm-classes.">algorithm</a> object.
  151. <p>
  152. <dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="a00008.html#998e0c28d20bbbbb5a0d705371e4ed00" title="Destructor.">dfs::~dfs</a> </dd></dl>
  153. </div>
  154. </div><p>
  155. <hr><h2>Member Function Documentation</h2>
  156. <a class="anchor" name="5db0b38d8d01af52720d6941103de4f2"></a><!-- doxytag: member="biconnectivity::check" ref="5db0b38d8d01af52720d6941103de4f2" args="(graph &amp;G)" -->
  157. <div class="memitem">
  158. <div class="memproto">
  159. <table class="memname">
  160. <tr>
  161. <td class="memname">virtual int biconnectivity::check </td>
  162. <td>(</td>
  163. <td class="paramtype"><a class="el" href="a00014.html">graph</a> &amp;&nbsp;</td>
  164. <td class="paramname"> <em>G</em> </td>
  165. <td>&nbsp;)&nbsp;</td>
  166. <td width="100%"><code> [virtual]</code></td>
  167. </tr>
  168. </table>
  169. </div>
  170. <div class="memdoc">
  171. <p>
  172. Checks whether the <a class="el" href="a00001.html" title="Abstract baseclass for all algoritm-classes.">algorithm</a> can be applied.
  173. <p>
  174. Necessary preconditions:<ul>
  175. <li>G is undirected.</li><li>storing of predecessors is enabled.</li><li>DFS may be applied</li></ul>
  176. <p>
  177. <dl compact><dt><b>Parameters:</b></dt><dd>
  178. <table border="0" cellspacing="2" cellpadding="0">
  179. <tr><td valign="top"></td><td valign="top"><em>G</em>&nbsp;</td><td><a class="el" href="a00014.html" title="A directed or undirected graph.">graph</a>. </td></tr>
  180. </table>
  181. </dl>
  182. <dl class="return" compact><dt><b>Returns:</b></dt><dd><a class="el" href="a00001.html#f1a0078e153aa99c24f9bdf0d97f67105114c20e4a96a76b5de9f28bf15e282b">algorithm::GTL_OK</a> if binconnectivity-test can be applied to <em>G</em>. </dd></dl>
  183. <dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="a00008.html#a7c864a6f3a120720138b187b3ed95b5" title="Enables or disables scanning of the whole graph.">dfs::scan_whole_graph</a>, <a class="el" href="a00008.html#7043f46eb3887cbcbb1391fc783407a4" title="Enables or disables the storing of predecessors.">dfs::store_preds</a> </dd></dl>
  184. <p>Reimplemented from <a class="el" href="a00008.html#908f4ea617ed59767ed334b39a2771d0">dfs</a>.</p>
  185. </div>
  186. </div><p>
  187. <a class="anchor" name="a1a4b091fd8b2bbea2b36b91bab713af"></a><!-- doxytag: member="biconnectivity::reset" ref="a1a4b091fd8b2bbea2b36b91bab713af" args="()" -->
  188. <div class="memitem">
  189. <div class="memproto">
  190. <table class="memname">
  191. <tr>
  192. <td class="memname">virtual void biconnectivity::reset </td>
  193. <td>(</td>
  194. <td class="paramname"> </td>
  195. <td>&nbsp;)&nbsp;</td>
  196. <td width="100%"><code> [virtual]</code></td>
  197. </tr>
  198. </table>
  199. </div>
  200. <div class="memdoc">
  201. <p>
  202. Resets algorithm.
  203. <p>
  204. Prepares the algorithm to be applied to another graph. <em>Please</em> <em>note:</em> The options an algorithm may support do <em>not</em> get reset by this. It is just to reset internally used datastructures.
  205. <p>Reimplemented from <a class="el" href="a00008.html#1c893f699517cc72624cf171b7bc4da4">dfs</a>.</p>
  206. </div>
  207. </div><p>
  208. <a class="anchor" name="e0d0b47a16da24c0f124cb989ccf5846"></a><!-- doxytag: member="biconnectivity::low_number" ref="e0d0b47a16da24c0f124cb989ccf5846" args="(const node &amp;n) const " -->
  209. <div class="memitem">
  210. <div class="memproto">
  211. <table class="memname">
  212. <tr>
  213. <td class="memname">int biconnectivity::low_number </td>
  214. <td>(</td>
  215. <td class="paramtype">const <a class="el" href="a00020.html">node</a> &amp;&nbsp;</td>
  216. <td class="paramname"> <em>n</em> </td>
  217. <td>&nbsp;)&nbsp;</td>
  218. <td width="100%"> const<code> [inline]</code></td>
  219. </tr>
  220. </table>
  221. </div>
  222. <div class="memdoc">
  223. <p>
  224. low-number.
  225. <p>
  226. <dl compact><dt><b>Parameters:</b></dt><dd>
  227. <table border="0" cellspacing="2" cellpadding="0">
  228. <tr><td valign="top"></td><td valign="top"><em>n</em>&nbsp;</td><td><a class="el" href="a00020.html" title="A node in a graph.">node</a>. </td></tr>
  229. </table>
  230. </dl>
  231. <dl class="return" compact><dt><b>Returns:</b></dt><dd>low-number of n. </dd></dl>
  232. </div>
  233. </div><p>
  234. <a class="anchor" name="2db9457fbbfb6a832234d8455e807198"></a><!-- doxytag: member="biconnectivity::is_biconnected" ref="2db9457fbbfb6a832234d8455e807198" args="() const " -->
  235. <div class="memitem">
  236. <div class="memproto">
  237. <table class="memname">
  238. <tr>
  239. <td class="memname">bool biconnectivity::is_biconnected </td>
  240. <td>(</td>
  241. <td class="paramname"> </td>
  242. <td>&nbsp;)&nbsp;</td>
  243. <td width="100%"> const<code> [inline]</code></td>
  244. </tr>
  245. </table>
  246. </div>
  247. <div class="memdoc">
  248. <p>
  249. Biconnectivity-test.
  250. <p>
  251. <dl class="return" compact><dt><b>Returns:</b></dt><dd>true iff <a class="el" href="a00014.html" title="A directed or undirected graph.">graph</a> is biconnected. </dd></dl>
  252. </div>
  253. </div><p>
  254. <a class="anchor" name="f6fe3286b7cb24e0da460cfdbf733d79"></a><!-- doxytag: member="biconnectivity::store_components" ref="f6fe3286b7cb24e0da460cfdbf733d79" args="() const " -->
  255. <div class="memitem">
  256. <div class="memproto">
  257. <table class="memname">
  258. <tr>
  259. <td class="memname">bool biconnectivity::store_components </td>
  260. <td>(</td>
  261. <td class="paramname"> </td>
  262. <td>&nbsp;)&nbsp;</td>
  263. <td width="100%"> const<code> [inline]</code></td>
  264. </tr>
  265. </table>
  266. </div>
  267. <div class="memdoc">
  268. <p>
  269. Returns whether the storing of <a class="el" href="a00007.html" title="Connected components algorithm.">components</a> is enabled.
  270. <p>
  271. <dl class="return" compact><dt><b>Returns:</b></dt><dd>true iff storing of <a class="el" href="a00007.html" title="Connected components algorithm.">components</a> is enabled. </dd></dl>
  272. <dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="a00004.html#c0b7253533edc3f1412f771cb35bf04a" title="Start iteration over all biconnected components (if enabled during last call to run)...">biconnectivity::components_begin</a>, <a class="el" href="a00004.html#0bd1c70975e664174e591efd64f8dc71" title="End of iteration over all biconnected components.">biconnectivity::components_end</a> </dd></dl>
  273. </div>
  274. </div><p>
  275. <a class="anchor" name="b7c9e256a4d7a4ffea33b20f014e1f69"></a><!-- doxytag: member="biconnectivity::store_components" ref="b7c9e256a4d7a4ffea33b20f014e1f69" args="(bool set)" -->
  276. <div class="memitem">
  277. <div class="memproto">
  278. <table class="memname">
  279. <tr>
  280. <td class="memname">void biconnectivity::store_components </td>
  281. <td>(</td>
  282. <td class="paramtype">bool&nbsp;</td>
  283. <td class="paramname"> <em>set</em> </td>
  284. <td>&nbsp;)&nbsp;</td>
  285. <td width="100%"><code> [inline]</code></td>
  286. </tr>
  287. </table>
  288. </div>
  289. <div class="memdoc">
  290. <p>
  291. Enables or disables the storing of biconnected <a class="el" href="a00007.html" title="Connected components algorithm.">components</a>.
  292. <p>
  293. If this feature is enabled, the whole <a class="el" href="a00014.html" title="A directed or undirected graph.">graph</a> will be scanned in order to get all the biconnected <a class="el" href="a00007.html" title="Connected components algorithm.">components</a> even if the <a class="el" href="a00014.html" title="A directed or undirected graph.">graph</a> isn't connected. By default this feature is disabled.<p>
  294. <dl compact><dt><b>Parameters:</b></dt><dd>
  295. <table border="0" cellspacing="2" cellpadding="0">
  296. <tr><td valign="top"></td><td valign="top"><em>set</em>&nbsp;</td><td>if true each biconnected component will be stored. </td></tr>
  297. </table>
  298. </dl>
  299. <dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="a00004.html#c0b7253533edc3f1412f771cb35bf04a" title="Start iteration over all biconnected components (if enabled during last call to run)...">biconnectivity::components_begin</a>, <a class="el" href="a00004.html#0bd1c70975e664174e591efd64f8dc71" title="End of iteration over all biconnected components.">biconnectivity::components_end</a> </dd></dl>
  300. </div>
  301. </div><p>
  302. <a class="anchor" name="774fd08203a6d164605afc4cdc8b9201"></a><!-- doxytag: member="biconnectivity::make_biconnected" ref="774fd08203a6d164605afc4cdc8b9201" args="(bool set)" -->
  303. <div class="memitem">
  304. <div class="memproto">
  305. <table class="memname">
  306. <tr>
  307. <td class="memname">void biconnectivity::make_biconnected </td>
  308. <td>(</td>
  309. <td class="paramtype">bool&nbsp;</td>
  310. <td class="paramname"> <em>set</em> </td>
  311. <td>&nbsp;)&nbsp;</td>
  312. <td width="100%"><code> [inline]</code></td>
  313. </tr>
  314. </table>
  315. </div>
  316. <div class="memdoc">
  317. <p>
  318. If enabled edges will be added to the <a class="el" href="a00014.html" title="A directed or undirected graph.">graph</a> in order to make it biconnected, if cutpoints are discovered.
  319. <p>
  320. The list of added edges can be accessed via additional_begin and additional_end.<p>
  321. <dl compact><dt><b>Parameters:</b></dt><dd>
  322. <table border="0" cellspacing="2" cellpadding="0">
  323. <tr><td valign="top"></td><td valign="top"><em>set</em>&nbsp;</td><td>if true additional edges will we inserted to make the <a class="el" href="a00014.html" title="A directed or undirected graph.">graph</a> biconnected. </td></tr>
  324. </table>
  325. </dl>
  326. <dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="a00004.html#c5295da180114bffbbfd621d644d4c58" title="Begin of edges added to make graph biconnected.">biconnectivity::additional_begin</a>, <a class="el" href="a00004.html#447a86f387efd181b25b8bacf3365e75" title="End of edges added to make graph biconnected.">biconnectivity::additional_end</a> </dd></dl>
  327. </div>
  328. </div><p>
  329. <a class="anchor" name="2db912e8bc1a89e431116824434e836d"></a><!-- doxytag: member="biconnectivity::make_biconnected" ref="2db912e8bc1a89e431116824434e836d" args="() const " -->
  330. <div class="memitem">
  331. <div class="memproto">
  332. <table class="memname">
  333. <tr>
  334. <td class="memname">bool biconnectivity::make_biconnected </td>
  335. <td>(</td>
  336. <td class="paramname"> </td>
  337. <td>&nbsp;)&nbsp;</td>
  338. <td width="100%"> const<code> [inline]</code></td>
  339. </tr>
  340. </table>
  341. </div>
  342. <div class="memdoc">
  343. <p>
  344. Returns whether addition of edges neccessary to make <a class="el" href="a00014.html" title="A directed or undirected graph.">graph</a> biconnected is enabled.
  345. <p>
  346. <dl class="return" compact><dt><b>Returns:</b></dt><dd>true iff addition edges is enabled. </dd></dl>
  347. <dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="a00004.html#c5295da180114bffbbfd621d644d4c58" title="Begin of edges added to make graph biconnected.">biconnectivity::additional_begin</a>, <a class="el" href="a00004.html#447a86f387efd181b25b8bacf3365e75" title="End of edges added to make graph biconnected.">biconnectivity::additional_end</a> </dd></dl>
  348. </div>
  349. </div><p>
  350. <a class="anchor" name="c5295da180114bffbbfd621d644d4c58"></a><!-- doxytag: member="biconnectivity::additional_begin" ref="c5295da180114bffbbfd621d644d4c58" args="()" -->
  351. <div class="memitem">
  352. <div class="memproto">
  353. <table class="memname">
  354. <tr>
  355. <td class="memname">list&lt;<a class="el" href="a00010.html">edge</a>&gt;::iterator biconnectivity::additional_begin </td>
  356. <td>(</td>
  357. <td class="paramname"> </td>
  358. <td>&nbsp;)&nbsp;</td>
  359. <td width="100%"><code> [inline]</code></td>
  360. </tr>
  361. </table>
  362. </div>
  363. <div class="memdoc">
  364. <p>
  365. Begin of edges added to make <a class="el" href="a00014.html" title="A directed or undirected graph.">graph</a> biconnected.
  366. <p>
  367. <dl class="return" compact><dt><b>Returns:</b></dt><dd>begin of additional edges </dd></dl>
  368. <dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="a00004.html#774fd08203a6d164605afc4cdc8b9201" title="If enabled edges will be added to the graph in order to make it biconnected, if cutpoints...">biconnectivity::make_biconnected</a> </dd></dl>
  369. </div>
  370. </div><p>
  371. <a class="anchor" name="447a86f387efd181b25b8bacf3365e75"></a><!-- doxytag: member="biconnectivity::additional_end" ref="447a86f387efd181b25b8bacf3365e75" args="()" -->
  372. <div class="memitem">
  373. <div class="memproto">
  374. <table class="memname">
  375. <tr>
  376. <td class="memname">list&lt;<a class="el" href="a00010.html">edge</a>&gt;::iterator biconnectivity::additional_end </td>
  377. <td>(</td>
  378. <td class="paramname"> </td>
  379. <td>&nbsp;)&nbsp;</td>
  380. <td width="100%"><code> [inline]</code></td>
  381. </tr>
  382. </table>
  383. </div>
  384. <div class="memdoc">
  385. <p>
  386. End of edges added to make <a class="el" href="a00014.html" title="A directed or undirected graph.">graph</a> biconnected.
  387. <p>
  388. <dl class="return" compact><dt><b>Returns:</b></dt><dd>end of additional edges </dd></dl>
  389. <dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="a00004.html#774fd08203a6d164605afc4cdc8b9201" title="If enabled edges will be added to the graph in order to make it biconnected, if cutpoints...">biconnectivity::make_biconnected</a> </dd></dl>
  390. </div>
  391. </div><p>
  392. <a class="anchor" name="473197552874aaf148e847838144eed7"></a><!-- doxytag: member="biconnectivity::cut_points_begin" ref="473197552874aaf148e847838144eed7" args="()" -->
  393. <div class="memitem">
  394. <div class="memproto">
  395. <table class="memname">
  396. <tr>
  397. <td class="memname">cutpoint_iterator biconnectivity::cut_points_begin </td>
  398. <td>(</td>
  399. <td class="paramname"> </td>
  400. <td>&nbsp;)&nbsp;</td>
  401. <td width="100%"><code> [inline]</code></td>
  402. </tr>
  403. </table>
  404. </div>
  405. <div class="memdoc">
  406. <p>
  407. Start iteration over all cutpoints found.
  408. <p>
  409. A cutpoints is a <a class="el" href="a00020.html" title="A node in a graph.">node</a> whose removal will disconnect the <a class="el" href="a00014.html" title="A directed or undirected graph.">graph</a>, thus a <a class="el" href="a00014.html" title="A directed or undirected graph.">graph</a> with no cutpoints is biconnected and vice versa.<p>
  410. <dl class="return" compact><dt><b>Returns:</b></dt><dd>iterator to first cutpoint. </dd></dl>
  411. <dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="a00004.html#78cb06c1d056b9519622a67a92e85b6e" title="End of iteration over all cutpoints.">biconnectivity::cut_points_end</a> </dd></dl>
  412. </div>
  413. </div><p>
  414. <a class="anchor" name="78cb06c1d056b9519622a67a92e85b6e"></a><!-- doxytag: member="biconnectivity::cut_points_end" ref="78cb06c1d056b9519622a67a92e85b6e" args="()" -->
  415. <div class="memitem">
  416. <div class="memproto">
  417. <table class="memname">
  418. <tr>
  419. <td class="memname">cutpoint_iterator biconnectivity::cut_points_end </td>
  420. <td>(</td>
  421. <td class="paramname"> </td>
  422. <td>&nbsp;)&nbsp;</td>
  423. <td width="100%"><code> [inline]</code></td>
  424. </tr>
  425. </table>
  426. </div>
  427. <div class="memdoc">
  428. <p>
  429. End of iteration over all cutpoints.
  430. <p>
  431. <dl class="return" compact><dt><b>Returns:</b></dt><dd>one-past-the-end iterator. </dd></dl>
  432. <dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="a00004.html#473197552874aaf148e847838144eed7" title="Start iteration over all cutpoints found.">biconnectivity::cut_points_begin</a> </dd></dl>
  433. </div>
  434. </div><p>
  435. <a class="anchor" name="c0b7253533edc3f1412f771cb35bf04a"></a><!-- doxytag: member="biconnectivity::components_begin" ref="c0b7253533edc3f1412f771cb35bf04a" args="()" -->
  436. <div class="memitem">
  437. <div class="memproto">
  438. <table class="memname">
  439. <tr>
  440. <td class="memname">component_iterator biconnectivity::components_begin </td>
  441. <td>(</td>
  442. <td class="paramname"> </td>
  443. <td>&nbsp;)&nbsp;</td>
  444. <td width="100%"><code> [inline]</code></td>
  445. </tr>
  446. </table>
  447. </div>
  448. <div class="memdoc">
  449. <p>
  450. Start iteration over all biconnected <a class="el" href="a00007.html" title="Connected components algorithm.">components</a> (if enabled during last call to run).
  451. <p>
  452. Components are represented as a pair consisting of a list of nodes and a list of edges, i.e. if it is of type component_iterator then *it is of type pair&lt;list&lt;<a class="el" href="a00020.html" title="A node in a graph.">node</a>&gt;,list&lt;<a class="el" href="a00010.html" title="An edge in a graph.">edge</a>&gt; &gt;.<p>
  453. <dl class="return" compact><dt><b>Returns:</b></dt><dd>iterator to first component </dd></dl>
  454. <dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="a00004.html#f6fe3286b7cb24e0da460cfdbf733d79" title="Returns whether the storing of components is enabled.">biconnectivity::store_components</a> </dd></dl>
  455. </div>
  456. </div><p>
  457. <a class="anchor" name="0bd1c70975e664174e591efd64f8dc71"></a><!-- doxytag: member="biconnectivity::components_end" ref="0bd1c70975e664174e591efd64f8dc71" args="()" -->
  458. <div class="memitem">
  459. <div class="memproto">
  460. <table class="memname">
  461. <tr>
  462. <td class="memname">component_iterator biconnectivity::components_end </td>
  463. <td>(</td>
  464. <td class="paramname"> </td>
  465. <td>&nbsp;)&nbsp;</td>
  466. <td width="100%"><code> [inline]</code></td>
  467. </tr>
  468. </table>
  469. </div>
  470. <div class="memdoc">
  471. <p>
  472. End of iteration over all biconnected <a class="el" href="a00007.html" title="Connected components algorithm.">components</a>.
  473. <p>
  474. <dl class="return" compact><dt><b>Returns:</b></dt><dd>end of iteration over biconnected <a class="el" href="a00007.html" title="Connected components algorithm.">components</a> </dd></dl>
  475. <dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="a00004.html#f6fe3286b7cb24e0da460cfdbf733d79" title="Returns whether the storing of components is enabled.">biconnectivity::store_components</a> </dd></dl>
  476. </div>
  477. </div><p>
  478. <a class="anchor" name="c984168e3c2b1b92fc20def2b38fb07f"></a><!-- doxytag: member="biconnectivity::number_of_components" ref="c984168e3c2b1b92fc20def2b38fb07f" args="() const " -->
  479. <div class="memitem">
  480. <div class="memproto">
  481. <table class="memname">
  482. <tr>
  483. <td class="memname">int biconnectivity::number_of_components </td>
  484. <td>(</td>
  485. <td class="paramname"> </td>
  486. <td>&nbsp;)&nbsp;</td>
  487. <td width="100%"> const<code> [inline]</code></td>
  488. </tr>
  489. </table>
  490. </div>
  491. <div class="memdoc">
  492. <p>
  493. Number von biconnected <a class="el" href="a00007.html" title="Connected components algorithm.">components</a> detected during the last run.
  494. <p>
  495. <dl class="return" compact><dt><b>Returns:</b></dt><dd>number of biconnected <a class="el" href="a00007.html" title="Connected components algorithm.">components</a>. </dd></dl>
  496. </div>
  497. </div><p>
  498. <a class="anchor" name="c13bfac43192225a9161b0bf0827f600"></a><!-- doxytag: member="biconnectivity::init_handler" ref="c13bfac43192225a9161b0bf0827f600" args="(graph &amp;)" -->
  499. <div class="memitem">
  500. <div class="memproto">
  501. <table class="memname">
  502. <tr>
  503. <td class="memname">virtual void biconnectivity::init_handler </td>
  504. <td>(</td>
  505. <td class="paramtype"><a class="el" href="a00014.html">graph</a> &amp;&nbsp;</td>
  506. <td class="paramname"> <em>G</em> </td>
  507. <td>&nbsp;)&nbsp;</td>
  508. <td width="100%"><code> [virtual]</code></td>
  509. </tr>
  510. </table>
  511. </div>
  512. <div class="memdoc">
  513. <p>
  514. Handler called before the start of DFS.
  515. <p>
  516. <dl compact><dt><b>Parameters:</b></dt><dd>
  517. <table border="0" cellspacing="2" cellpadding="0">
  518. <tr><td valign="top"></td><td valign="top"><em>G</em>&nbsp;</td><td>graph for which DFS was invoked. </td></tr>
  519. </table>
  520. </dl>
  521. <p>Reimplemented from <a class="el" href="a00008.html#cc82574cd42ab8256e685374bee5fabb">dfs</a>.</p>
  522. </div>
  523. </div><p>
  524. <a class="anchor" name="caf5548cba90ee5b6ae3a542ac13e767"></a><!-- doxytag: member="biconnectivity::entry_handler" ref="caf5548cba90ee5b6ae3a542ac13e767" args="(graph &amp;, node &amp;, node &amp;)" -->
  525. <div class="memitem">
  526. <div class="memproto">
  527. <table class="memname">
  528. <tr>
  529. <td class="memname">virtual void biconnectivity::entry_handler </td>
  530. <td>(</td>
  531. <td class="paramtype"><a class="el" href="a00014.html">graph</a> &amp;&nbsp;</td>
  532. <td class="paramname"> <em>G</em>, </td>
  533. </tr>
  534. <tr>
  535. <td class="paramkey"></td>
  536. <td></td>
  537. <td class="paramtype"><a class="el" href="a00020.html">node</a> &amp;&nbsp;</td>
  538. <td class="paramname"> <em>n</em>, </td>
  539. </tr>
  540. <tr>
  541. <td class="paramkey"></td>
  542. <td></td>
  543. <td class="paramtype"><a class="el" href="a00020.html">node</a> &amp;&nbsp;</td>
  544. <td class="paramname"> <em>f</em></td><td>&nbsp;</td>
  545. </tr>
  546. <tr>
  547. <td></td>
  548. <td>)</td>
  549. <td></td><td></td><td width="100%"><code> [virtual]</code></td>
  550. </tr>
  551. </table>
  552. </div>
  553. <div class="memdoc">
  554. <p>
  555. Handler called when touching node <em>n</em>.
  556. <p>
  557. <dl compact><dt><b>Parameters:</b></dt><dd>
  558. <table border="0" cellspacing="2" cellpadding="0">
  559. <tr><td valign="top"></td><td valign="top"><em>G</em>&nbsp;</td><td>graph for which DFS was invoked. </td></tr>
  560. <tr><td valign="top"></td><td valign="top"><em>n</em>&nbsp;</td><td>actual node. </td></tr>
  561. <tr><td valign="top"></td><td valign="top"><em>f</em>&nbsp;</td><td>predecessor. </td></tr>
  562. </table>
  563. </dl>
  564. <p>Reimplemented from <a class="el" href="a00008.html#73dabe5882226b53494a487b7c34f1d1">dfs</a>.</p>
  565. </div>
  566. </div><p>
  567. <a class="anchor" name="cf4ca6d67f23498c43cfc3669c80417c"></a><!-- doxytag: member="biconnectivity::before_recursive_call_handler" ref="cf4ca6d67f23498c43cfc3669c80417c" args="(graph &amp;, edge &amp;, node &amp;)" -->
  568. <div class="memitem">
  569. <div class="memproto">
  570. <table class="memname">
  571. <tr>
  572. <td class="memname">virtual void biconnectivity::before_recursive_call_handler </td>
  573. <td>(</td>
  574. <td class="paramtype"><a class="el" href="a00014.html">graph</a> &amp;&nbsp;</td>
  575. <td class="paramname"> <em>G</em>, </td>
  576. </tr>
  577. <tr>
  578. <td class="paramkey"></td>
  579. <td></td>
  580. <td class="paramtype"><a class="el" href="a00010.html">edge</a> &amp;&nbsp;</td>
  581. <td class="paramname"> <em>e</em>, </td>
  582. </tr>
  583. <tr>
  584. <td class="paramkey"></td>
  585. <td></td>
  586. <td class="paramtype"><a class="el" href="a00020.html">node</a> &amp;&nbsp;</td>
  587. <td class="paramname"> <em>n</em></td><td>&nbsp;</td>
  588. </tr>
  589. <tr>
  590. <td></td>
  591. <td>)</td>
  592. <td></td><td></td><td width="100%"><code> [virtual]</code></td>
  593. </tr>
  594. </table>
  595. </div>
  596. <div class="memdoc">
  597. <p>
  598. Handler called when a unused node <em>n</em> connected to the actual node by <em>e</em> is found.
  599. <p>
  600. <dl compact><dt><b>Parameters:</b></dt><dd>
  601. <table border="0" cellspacing="2" cellpadding="0">
  602. <tr><td valign="top"></td><td valign="top"><em>G</em>&nbsp;</td><td>graph for which DFS was invoked. </td></tr>
  603. <tr><td valign="top"></td><td valign="top"><em>e</em>&nbsp;</td><td>edge connecting the actual node to the unused one. </td></tr>
  604. <tr><td valign="top"></td><td valign="top"><em>n</em>&nbsp;</td><td>unused node. </td></tr>
  605. </table>
  606. </dl>
  607. <p>Reimplemented from <a class="el" href="a00008.html#e3f095c9fe6106e82c24543da4844ea3">dfs</a>.</p>
  608. </div>
  609. </div><p>
  610. <a class="anchor" name="9a2e5d5f934d5ff1d93c545414a7dab5"></a><!-- doxytag: member="biconnectivity::after_recursive_call_handler" ref="9a2e5d5f934d5ff1d93c545414a7dab5" args="(graph &amp;, edge &amp;, node &amp;)" -->
  611. <div class="memitem">
  612. <div class="memproto">
  613. <table class="memname">
  614. <tr>
  615. <td class="memname">virtual void biconnectivity::after_recursive_call_handler </td>
  616. <td>(</td>
  617. <td class="paramtype"><a class="el" href="a00014.html">graph</a> &amp;&nbsp;</td>
  618. <td class="paramname"> <em>G</em>, </td>
  619. </tr>
  620. <tr>
  621. <td class="paramkey"></td>
  622. <td></td>
  623. <td class="paramtype"><a class="el" href="a00010.html">edge</a> &amp;&nbsp;</td>
  624. <td class="paramname"> <em>e</em>, </td>
  625. </tr>
  626. <tr>
  627. <td class="paramkey"></td>
  628. <td></td>
  629. <td class="paramtype"><a class="el" href="a00020.html">node</a> &amp;&nbsp;</td>
  630. <td class="paramname"> <em>n</em></td><td>&nbsp;</td>
  631. </tr>
  632. <tr>
  633. <td></td>
  634. <td>)</td>
  635. <td></td><td></td><td width="100%"><code> [virtual]</code></td>
  636. </tr>
  637. </table>
  638. </div>
  639. <div class="memdoc">
  640. <p>
  641. Handler called after the algorithm returns from the subtree starting at <em>n</em> connected to the actual node by <em>e</em>.
  642. <p>
  643. <dl compact><dt><b>Parameters:</b></dt><dd>
  644. <table border="0" cellspacing="2" cellpadding="0">
  645. <tr><td valign="top"></td><td valign="top"><em>G</em>&nbsp;</td><td>graph for which DFS was invoked. </td></tr>
  646. <tr><td valign="top"></td><td valign="top"><em>e</em>&nbsp;</td><td>edge connecting the actual node to the unused one. </td></tr>
  647. <tr><td valign="top"></td><td valign="top"><em>n</em>&nbsp;</td><td>unused node. </td></tr>
  648. </table>
  649. </dl>
  650. <p>Reimplemented from <a class="el" href="a00008.html#25ae75fe08f1d8c0fedcf9dcae09d092">dfs</a>.</p>
  651. </div>
  652. </div><p>
  653. <a class="anchor" name="54c5d1deed1c326f5934f4181770612b"></a><!-- doxytag: member="biconnectivity::old_adj_node_handler" ref="54c5d1deed1c326f5934f4181770612b" args="(graph &amp;, edge &amp;, node &amp;)" -->
  654. <div class="memitem">
  655. <div class="memproto">
  656. <table class="memname">
  657. <tr>
  658. <td class="memname">virtual void biconnectivity::old_adj_node_handler </td>
  659. <td>(</td>
  660. <td class="paramtype"><a class="el" href="a00014.html">graph</a> &amp;&nbsp;</td>
  661. <td class="paramname"> <em>G</em>, </td>
  662. </tr>
  663. <tr>
  664. <td class="paramkey"></td>
  665. <td></td>
  666. <td class="paramtype"><a class="el" href="a00010.html">edge</a> &amp;&nbsp;</td>
  667. <td class="paramname"> <em>e</em>, </td>
  668. </tr>
  669. <tr>
  670. <td class="paramkey"></td>
  671. <td></td>
  672. <td class="paramtype"><a class="el" href="a00020.html">node</a> &amp;&nbsp;</td>
  673. <td class="paramname"> <em>n</em></td><td>&nbsp;</td>
  674. </tr>
  675. <tr>
  676. <td></td>
  677. <td>)</td>
  678. <td></td><td></td><td width="100%"><code> [virtual]</code></td>
  679. </tr>
  680. </table>
  681. </div>
  682. <div class="memdoc">
  683. <p>
  684. Handler called when a already marked node <em>n</em> connected to the actual node by <em>e</em> is found during the search of all adjacent edges of the actual node.
  685. <p>
  686. <dl compact><dt><b>Parameters:</b></dt><dd>
  687. <table border="0" cellspacing="2" cellpadding="0">
  688. <tr><td valign="top"></td><td valign="top"><em>G</em>&nbsp;</td><td>graph for which DFS was invoked. </td></tr>
  689. <tr><td valign="top"></td><td valign="top"><em>e</em>&nbsp;</td><td>edge connecting the actual node to the old one. </td></tr>
  690. <tr><td valign="top"></td><td valign="top"><em>n</em>&nbsp;</td><td>used node. </td></tr>
  691. </table>
  692. </dl>
  693. <p>Reimplemented from <a class="el" href="a00008.html#df1c667188e632761c63f529537c544c">dfs</a>.</p>
  694. </div>
  695. </div><p>
  696. <a class="anchor" name="e67b0c7d2677f0f60d46995ff244a6d0"></a><!-- doxytag: member="biconnectivity::new_start_handler" ref="e67b0c7d2677f0f60d46995ff244a6d0" args="(graph &amp;, node &amp;)" -->
  697. <div class="memitem">
  698. <div class="memproto">
  699. <table class="memname">
  700. <tr>
  701. <td class="memname">virtual void biconnectivity::new_start_handler </td>
  702. <td>(</td>
  703. <td class="paramtype"><a class="el" href="a00014.html">graph</a> &amp;&nbsp;</td>
  704. <td class="paramname"> <em>G</em>, </td>
  705. </tr>
  706. <tr>
  707. <td class="paramkey"></td>
  708. <td></td>
  709. <td class="paramtype"><a class="el" href="a00020.html">node</a> &amp;&nbsp;</td>
  710. <td class="paramname"> <em>n</em></td><td>&nbsp;</td>
  711. </tr>
  712. <tr>
  713. <td></td>
  714. <td>)</td>
  715. <td></td><td></td><td width="100%"><code> [virtual]</code></td>
  716. </tr>
  717. </table>
  718. </div>
  719. <div class="memdoc">
  720. <p>
  721. Called when DFS is started with start-node <em>n</em>.
  722. <p>
  723. This is particularly useful when DFS was invoked with the <a class="el" href="a00008.html#a7c864a6f3a120720138b187b3ed95b5" title="Enables or disables scanning of the whole graph.">scan_whole_graph</a> option.<p>
  724. <dl compact><dt><b>Parameters:</b></dt><dd>
  725. <table border="0" cellspacing="2" cellpadding="0">
  726. <tr><td valign="top"></td><td valign="top"><em>G</em>&nbsp;</td><td>graph for which DFS was invoked. </td></tr>
  727. <tr><td valign="top"></td><td valign="top"><em>n</em>&nbsp;</td><td>start-node. </td></tr>
  728. </table>
  729. </dl>
  730. <p>Reimplemented from <a class="el" href="a00008.html#3b5fbea7a7baed9946cfb4444a7f20ea">dfs</a>.</p>
  731. </div>
  732. </div><p>
  733. <a class="anchor" name="cbb12e89c368f4346f36d09888d8bfb0"></a><!-- doxytag: member="biconnectivity::leave_handler" ref="cbb12e89c368f4346f36d09888d8bfb0" args="(graph &amp;, node &amp;, node &amp;)" -->
  734. <div class="memitem">
  735. <div class="memproto">
  736. <table class="memname">
  737. <tr>
  738. <td class="memname">virtual void biconnectivity::leave_handler </td>
  739. <td>(</td>
  740. <td class="paramtype"><a class="el" href="a00014.html">graph</a> &amp;&nbsp;</td>
  741. <td class="paramname"> <em>G</em>, </td>
  742. </tr>
  743. <tr>
  744. <td class="paramkey"></td>
  745. <td></td>
  746. <td class="paramtype"><a class="el" href="a00020.html">node</a> &amp;&nbsp;</td>
  747. <td class="paramname"> <em>n</em>, </td>
  748. </tr>
  749. <tr>
  750. <td class="paramkey"></td>
  751. <td></td>
  752. <td class="paramtype"><a class="el" href="a00020.html">node</a> &amp;&nbsp;</td>
  753. <td class="paramname"> <em>f</em></td><td>&nbsp;</td>
  754. </tr>
  755. <tr>
  756. <td></td>
  757. <td>)</td>
  758. <td></td><td></td><td width="100%"><code> [virtual]</code></td>
  759. </tr>
  760. </table>
  761. </div>
  762. <div class="memdoc">
  763. <p>
  764. Handler called after all the adjacent edges of <em>n</em> have been examined.
  765. <p>
  766. <dl compact><dt><b>Parameters:</b></dt><dd>
  767. <table border="0" cellspacing="2" cellpadding="0">
  768. <tr><td valign="top"></td><td valign="top"><em>G</em>&nbsp;</td><td>graph for which DFS was invoked. </td></tr>
  769. <tr><td valign="top"></td><td valign="top"><em>n</em>&nbsp;</td><td>actual node. </td></tr>
  770. <tr><td valign="top"></td><td valign="top"><em>f</em>&nbsp;</td><td>predecessor. </td></tr>
  771. </table>
  772. </dl>
  773. <p>Reimplemented from <a class="el" href="a00008.html#8071fc4e82deff7ceb2790cd4eb42280">dfs</a>.</p>
  774. </div>
  775. </div><p>
  776. <a class="anchor" name="eade3bbc61d1046ba80ec88988f72c44"></a><!-- doxytag: member="biconnectivity::end_handler" ref="eade3bbc61d1046ba80ec88988f72c44" args="(graph &amp;)" -->
  777. <div class="memitem">
  778. <div class="memproto">
  779. <table class="memname">
  780. <tr>
  781. <td class="memname">virtual void biconnectivity::end_handler </td>
  782. <td>(</td>
  783. <td class="paramtype"><a class="el" href="a00014.html">graph</a> &amp;&nbsp;</td>
  784. <td class="paramname"> <em>G</em> </td>
  785. <td>&nbsp;)&nbsp;</td>
  786. <td width="100%"><code> [virtual]</code></td>
  787. </tr>
  788. </table>
  789. </div>
  790. <div class="memdoc">
  791. <p>
  792. Handler called at the end of DFS.
  793. <p>
  794. <dl compact><dt><b>Parameters:</b></dt><dd>
  795. <table border="0" cellspacing="2" cellpadding="0">
  796. <tr><td valign="top"></td><td valign="top"><em>G</em>&nbsp;</td><td>graph for which DFS was invoked. </td></tr>
  797. </table>
  798. </dl>
  799. <p>Reimplemented from <a class="el" href="a00008.html#b96c7c6183856dd9e356fdcf50835b32">dfs</a>.</p>
  800. </div>
  801. </div><p>
  802. <p class="links">
  803. <a href="http://www.uni-passau.de/">University of Passau</a>
  804. &nbsp;-&nbsp;
  805. <a href="http://www.fmi.uni-passau.de/">FMI</a>
  806. &nbsp;-&nbsp;
  807. <a href="http://www.fmi.uni-passau.de/fmi/lehrstuehle/brandenburg/">Theoretical
  808. Computer Science</a>
  809. </p>
  810. <div class="copyright">
  811. Design &copy; 2002, 2003 <a href="mailto:raitner@fmi.uni-passau.de">Marcus Raitner</a>, University of Passau
  812. </div>
  813. </body>
  814. </html>