if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="Grafo.Dirigido";
}
}
catch(err) {
}
//-->
var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10,"i21":10,"i22":10};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
<li><ahref="../../../cl/cromer/estructuras/Grafo.DFSVisitor.html"title="interface in cl.cromer.estructuras"><spanclass="typeNameLink">Prev Class</span></a></li>
<li><ahref="../../../cl/cromer/estructuras/Grafo.Edge.html"title="class in cl.cromer.estructuras"><spanclass="typeNameLink">Next Class</span></a></li>
<thclass="colFirst"scope="col">Modifier and Type</th>
<thclass="colLast"scope="col">Field and Description</th>
</tr>
<trclass="altColor">
<tdclass="colFirst"><code>private java.util.List<<ahref="../../../cl/cromer/estructuras/Grafo.Edge.html"title="class in cl.cromer.estructuras">Grafo.Edge</a><<ahref="../../../cl/cromer/estructuras/Grafo.Dirigido.html"title="type parameter in Grafo.Dirigido">T</a>>></code></td>
<divclass="block">Vector of edges in the graph</div>
</td>
</tr>
<trclass="rowColor">
<tdclass="colFirst"><code>private <ahref="../../../cl/cromer/estructuras/Grafo.Vertex.html"title="class in cl.cromer.estructuras">Grafo.Vertex</a><<ahref="../../../cl/cromer/estructuras/Grafo.Dirigido.html"title="type parameter in Grafo.Dirigido">T</a>></code></td>
<divclass="block">The vertex identified as the root of the graph</div>
</td>
</tr>
<trclass="altColor">
<tdclass="colFirst"><code>private java.util.List<<ahref="../../../cl/cromer/estructuras/Grafo.Vertex.html"title="class in cl.cromer.estructuras">Grafo.Vertex</a><<ahref="../../../cl/cromer/estructuras/Grafo.Dirigido.html"title="type parameter in Grafo.Dirigido">T</a>>></code></td>
<thclass="colFirst"scope="col">Modifier and Type</th>
<thclass="colLast"scope="col">Method and Description</th>
</tr>
<trid="i0"class="altColor">
<tdclass="colFirst"><code>boolean</code></td>
<tdclass="colLast"><code><spanclass="memberNameLink"><ahref="../../../cl/cromer/estructuras/Grafo.Dirigido.html#addEdge-cl.cromer.estructuras.Grafo.Vertex-cl.cromer.estructuras.Grafo.Vertex-int-">addEdge</a></span>(<ahref="../../../cl/cromer/estructuras/Grafo.Vertex.html"title="class in cl.cromer.estructuras">Grafo.Vertex</a><<ahref="../../../cl/cromer/estructuras/Grafo.Dirigido.html"title="type parameter in Grafo.Dirigido">T</a>> from,
<ahref="../../../cl/cromer/estructuras/Grafo.Vertex.html"title="class in cl.cromer.estructuras">Grafo.Vertex</a><<ahref="../../../cl/cromer/estructuras/Grafo.Dirigido.html"title="type parameter in Grafo.Dirigido">T</a>> to,
int cost)</code>
<divclass="block">Insert a directed, weighted Edge into the graph.</div>
</td>
</tr>
<trid="i1"class="rowColor">
<tdclass="colFirst"><code>boolean</code></td>
<tdclass="colLast"><code><spanclass="memberNameLink"><ahref="../../../cl/cromer/estructuras/Grafo.Dirigido.html#addVertex-cl.cromer.estructuras.Grafo.Vertex-">addVertex</a></span>(<ahref="../../../cl/cromer/estructuras/Grafo.Vertex.html"title="class in cl.cromer.estructuras">Grafo.Vertex</a><<ahref="../../../cl/cromer/estructuras/Grafo.Dirigido.html"title="type parameter in Grafo.Dirigido">T</a>> v)</code>
<divclass="block">Add a vertex to the graph</div>
</td>
</tr>
<trid="i2"class="altColor">
<tdclass="colFirst"><code>void</code></td>
<tdclass="colLast"><code><spanclass="memberNameLink"><ahref="../../../cl/cromer/estructuras/Grafo.Dirigido.html#breadthFirstSearch-cl.cromer.estructuras.Grafo.Vertex-cl.cromer.estructuras.Grafo.Visitor-">breadthFirstSearch</a></span>(<ahref="../../../cl/cromer/estructuras/Grafo.Vertex.html"title="class in cl.cromer.estructuras">Grafo.Vertex</a><<ahref="../../../cl/cromer/estructuras/Grafo.Dirigido.html"title="type parameter in Grafo.Dirigido">T</a>> v,
<ahref="../../../cl/cromer/estructuras/Grafo.Visitor.html"title="interface in cl.cromer.estructuras">Grafo.Visitor</a><<ahref="../../../cl/cromer/estructuras/Grafo.Dirigido.html"title="type parameter in Grafo.Dirigido">T</a>> visitor)</code>
<divclass="block">Perform a breadth first search of this graph, starting at v.</div>
<tdclass="colLast"><code><spanclass="memberNameLink"><ahref="../../../cl/cromer/estructuras/Grafo.Dirigido.html#breadthFirstSearch-cl.cromer.estructuras.Grafo.Vertex-cl.cromer.estructuras.Grafo.VisitorEX-">breadthFirstSearch</a></span>(<ahref="../../../cl/cromer/estructuras/Grafo.Vertex.html"title="class in cl.cromer.estructuras">Grafo.Vertex</a><<ahref="../../../cl/cromer/estructuras/Grafo.Dirigido.html"title="type parameter in Grafo.Dirigido">T</a>> v,
<ahref="../../../cl/cromer/estructuras/Grafo.VisitorEX.html"title="interface in cl.cromer.estructuras">Grafo.VisitorEX</a><<ahref="../../../cl/cromer/estructuras/Grafo.Dirigido.html"title="type parameter in Grafo.Dirigido">T</a>,E> visitor)</code>
<divclass="block">Perform a breadth first search of this graph, starting at v.</div>
<tdclass="colLast"><code><spanclass="memberNameLink"><ahref="../../../cl/cromer/estructuras/Grafo.Dirigido.html#depthFirstSearch-cl.cromer.estructuras.Grafo.Vertex-cl.cromer.estructuras.Grafo.VisitorEX-">depthFirstSearch</a></span>(<ahref="../../../cl/cromer/estructuras/Grafo.Vertex.html"title="class in cl.cromer.estructuras">Grafo.Vertex</a><<ahref="../../../cl/cromer/estructuras/Grafo.Dirigido.html"title="type parameter in Grafo.Dirigido">T</a>> v,
<ahref="../../../cl/cromer/estructuras/Grafo.VisitorEX.html"title="interface in cl.cromer.estructuras">Grafo.VisitorEX</a><<ahref="../../../cl/cromer/estructuras/Grafo.Dirigido.html"title="type parameter in Grafo.Dirigido">T</a>,E> visitor)</code>
<divclass="block">Perform a depth first serach using recursion.</div>
</td>
</tr>
<trid="i7"class="rowColor">
<tdclass="colFirst"><code>void</code></td>
<tdclass="colLast"><code><spanclass="memberNameLink"><ahref="../../../cl/cromer/estructuras/Grafo.Dirigido.html#dfsSpanningTree-cl.cromer.estructuras.Grafo.Vertex-cl.cromer.estructuras.Grafo.DFSVisitor-">dfsSpanningTree</a></span>(<ahref="../../../cl/cromer/estructuras/Grafo.Vertex.html"title="class in cl.cromer.estructuras">Grafo.Vertex</a><<ahref="../../../cl/cromer/estructuras/Grafo.Dirigido.html"title="type parameter in Grafo.Dirigido">T</a>> v,
<ahref="../../../cl/cromer/estructuras/Grafo.DFSVisitor.html"title="interface in cl.cromer.estructuras">Grafo.DFSVisitor</a><<ahref="../../../cl/cromer/estructuras/Grafo.Dirigido.html"title="type parameter in Grafo.Dirigido">T</a>> visitor)</code>
<divclass="block">Find the spanning tree using a DFS starting from v.</div>
</td>
</tr>
<trid="i8"class="altColor">
<tdclass="colFirst"><code><ahref="../../../cl/cromer/estructuras/Grafo.Edge.html"title="class in cl.cromer.estructuras">Grafo.Edge</a><<ahref="../../../cl/cromer/estructuras/Grafo.Dirigido.html"title="type parameter in Grafo.Dirigido">T</a>>[]</code></td>
<divclass="block">Search the graph for cycles.</div>
</td>
</tr>
<trid="i9"class="rowColor">
<tdclass="colFirst"><code><ahref="../../../cl/cromer/estructuras/Grafo.Vertex.html"title="class in cl.cromer.estructuras">Grafo.Vertex</a><<ahref="../../../cl/cromer/estructuras/Grafo.Dirigido.html"title="type parameter in Grafo.Dirigido">T</a>></code></td>
<tdclass="colLast"><code><spanclass="memberNameLink"><ahref="../../../cl/cromer/estructuras/Grafo.Dirigido.html#findVertexByData-T-java.util.Comparator-">findVertexByData</a></span>(<ahref="../../../cl/cromer/estructuras/Grafo.Dirigido.html"title="type parameter in Grafo.Dirigido">T</a> data,
java.util.Comparator<<ahref="../../../cl/cromer/estructuras/Grafo.Dirigido.html"title="type parameter in Grafo.Dirigido">T</a>> compare)</code>
<divclass="block">Search the verticies for one with data.</div>
</td>
</tr>
<trid="i10"class="altColor">
<tdclass="colFirst"><code><ahref="../../../cl/cromer/estructuras/Grafo.Vertex.html"title="class in cl.cromer.estructuras">Grafo.Vertex</a><<ahref="../../../cl/cromer/estructuras/Grafo.Dirigido.html"title="type parameter in Grafo.Dirigido">T</a>></code></td>
<divclass="block">Search the verticies for one with name.</div>
</td>
</tr>
<trid="i11"class="rowColor">
<tdclass="colFirst"><code>java.util.List<<ahref="../../../cl/cromer/estructuras/Grafo.Edge.html"title="class in cl.cromer.estructuras">Grafo.Edge</a><<ahref="../../../cl/cromer/estructuras/Grafo.Dirigido.html"title="type parameter in Grafo.Dirigido">T</a>>></code></td>
<tdclass="colFirst"><code><ahref="../../../cl/cromer/estructuras/Grafo.Vertex.html"title="class in cl.cromer.estructuras">Grafo.Vertex</a><<ahref="../../../cl/cromer/estructuras/Grafo.Dirigido.html"title="type parameter in Grafo.Dirigido">T</a>></code></td>
<tdclass="colFirst"><code><ahref="../../../cl/cromer/estructuras/Grafo.Vertex.html"title="class in cl.cromer.estructuras">Grafo.Vertex</a><<ahref="../../../cl/cromer/estructuras/Grafo.Dirigido.html"title="type parameter in Grafo.Dirigido">T</a>></code></td>
<tdclass="colFirst"><code>java.util.List<<ahref="../../../cl/cromer/estructuras/Grafo.Vertex.html"title="class in cl.cromer.estructuras">Grafo.Vertex</a><<ahref="../../../cl/cromer/estructuras/Grafo.Dirigido.html"title="type parameter in Grafo.Dirigido">T</a>>></code></td>
<tdclass="colLast"><code><spanclass="memberNameLink"><ahref="../../../cl/cromer/estructuras/Grafo.Dirigido.html#insertBiEdge-cl.cromer.estructuras.Grafo.Vertex-cl.cromer.estructuras.Grafo.Vertex-int-">insertBiEdge</a></span>(<ahref="../../../cl/cromer/estructuras/Grafo.Vertex.html"title="class in cl.cromer.estructuras">Grafo.Vertex</a><<ahref="../../../cl/cromer/estructuras/Grafo.Dirigido.html"title="type parameter in Grafo.Dirigido">T</a>> from,
<ahref="../../../cl/cromer/estructuras/Grafo.Vertex.html"title="class in cl.cromer.estructuras">Grafo.Vertex</a><<ahref="../../../cl/cromer/estructuras/Grafo.Dirigido.html"title="type parameter in Grafo.Dirigido">T</a>> to,
int cost)</code>
<divclass="block">Insert a bidirectional Edge in the graph</div>
<divclass="block">Are there any verticies in the graph</div>
</td>
</tr>
<trid="i17"class="rowColor">
<tdclass="colFirst"><code>boolean</code></td>
<tdclass="colLast"><code><spanclass="memberNameLink"><ahref="../../../cl/cromer/estructuras/Grafo.Dirigido.html#removeEdge-cl.cromer.estructuras.Grafo.Vertex-cl.cromer.estructuras.Grafo.Vertex-">removeEdge</a></span>(<ahref="../../../cl/cromer/estructuras/Grafo.Vertex.html"title="class in cl.cromer.estructuras">Grafo.Vertex</a><<ahref="../../../cl/cromer/estructuras/Grafo.Dirigido.html"title="type parameter in Grafo.Dirigido">T</a>> from,
<ahref="../../../cl/cromer/estructuras/Grafo.Vertex.html"title="class in cl.cromer.estructuras">Grafo.Vertex</a><<ahref="../../../cl/cromer/estructuras/Grafo.Dirigido.html"title="type parameter in Grafo.Dirigido">T</a>> to)</code>
<divclass="block">Remove an Edge from the graph</div>
</td>
</tr>
<trid="i18"class="altColor">
<tdclass="colFirst"><code>boolean</code></td>
<tdclass="colLast"><code><spanclass="memberNameLink"><ahref="../../../cl/cromer/estructuras/Grafo.Dirigido.html#removeVertex-cl.cromer.estructuras.Grafo.Vertex-">removeVertex</a></span>(<ahref="../../../cl/cromer/estructuras/Grafo.Vertex.html"title="class in cl.cromer.estructuras">Grafo.Vertex</a><<ahref="../../../cl/cromer/estructuras/Grafo.Dirigido.html"title="type parameter in Grafo.Dirigido">T</a>> v)</code>
<divclass="block">Remove a vertex from the graph</div>
</td>
</tr>
<trid="i19"class="rowColor">
<tdclass="colFirst"><code>void</code></td>
<tdclass="colLast"><code><spanclass="memberNameLink"><ahref="../../../cl/cromer/estructuras/Grafo.Dirigido.html#setRootVertex-cl.cromer.estructuras.Grafo.Vertex-">setRootVertex</a></span>(<ahref="../../../cl/cromer/estructuras/Grafo.Vertex.html"title="class in cl.cromer.estructuras">Grafo.Vertex</a><<ahref="../../../cl/cromer/estructuras/Grafo.Dirigido.html"title="type parameter in Grafo.Dirigido">T</a>> root)</code>
<tdclass="colLast"><code><spanclass="memberNameLink"><ahref="../../../cl/cromer/estructuras/Grafo.Dirigido.html#visit-cl.cromer.estructuras.Grafo.Vertex-java.util.ArrayList-">visit</a></span>(<ahref="../../../cl/cromer/estructuras/Grafo.Vertex.html"title="class in cl.cromer.estructuras">Grafo.Vertex</a><<ahref="../../../cl/cromer/estructuras/Grafo.Dirigido.html"title="type parameter in Grafo.Dirigido">T</a>> v,
java.util.ArrayList<<ahref="../../../cl/cromer/estructuras/Grafo.Edge.html"title="class in cl.cromer.estructuras">Grafo.Edge</a><<ahref="../../../cl/cromer/estructuras/Grafo.Dirigido.html"title="type parameter in Grafo.Dirigido">T</a>>> cycleEdges)</code> </td>
<divclass="block">Color used to mark nodes after descendants are completely visited</div>
<dl>
<dt><spanclass="seeLabel">See Also:</span></dt>
<dd><ahref="../../../constant-values.html#cl.cromer.estructuras.Grafo.Dirigido.VISIT_COLOR_BLACK">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<aname="verticies">
<!---->
</a>
<ulclass="blockList">
<liclass="blockList">
<h4>verticies</h4>
<pre>private java.util.List<<ahref="../../../cl/cromer/estructuras/Grafo.Vertex.html"title="class in cl.cromer.estructuras">Grafo.Vertex</a><<ahref="../../../cl/cromer/estructuras/Grafo.Dirigido.html"title="type parameter in Grafo.Dirigido">T</a>>> verticies</pre>
<divclass="block">Vector of graph verticies</div>
</li>
</ul>
<aname="edges">
<!---->
</a>
<ulclass="blockList">
<liclass="blockList">
<h4>edges</h4>
<pre>private java.util.List<<ahref="../../../cl/cromer/estructuras/Grafo.Edge.html"title="class in cl.cromer.estructuras">Grafo.Edge</a><<ahref="../../../cl/cromer/estructuras/Grafo.Dirigido.html"title="type parameter in Grafo.Dirigido">T</a>>> edges</pre>
<divclass="block">Vector of edges in the graph</div>
</li>
</ul>
<aname="rootVertex">
<!---->
</a>
<ulclass="blockListLast">
<liclass="blockList">
<h4>rootVertex</h4>
<pre>private <ahref="../../../cl/cromer/estructuras/Grafo.Vertex.html"title="class in cl.cromer.estructuras">Grafo.Vertex</a><<ahref="../../../cl/cromer/estructuras/Grafo.Dirigido.html"title="type parameter in Grafo.Dirigido">T</a>> rootVertex</pre>
<divclass="block">The vertex identified as the root of the graph</div>
</li>
</ul>
</li>
</ul>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ulclass="blockList">
<liclass="blockList"><aname="constructor.detail">
<!---->
</a>
<h3>Constructor Detail</h3>
<aname="Dirigido--">
<!---->
</a>
<ulclass="blockListLast">
<liclass="blockList">
<h4>Dirigido</h4>
<pre>public Dirigido()</pre>
<divclass="block">Construct a new graph without any vertices or edges</div>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ulclass="blockList">
<liclass="blockList"><aname="method.detail">
<!---->
</a>
<h3>Method Detail</h3>
<aname="isEmpty--">
<!---->
</a>
<ulclass="blockList">
<liclass="blockList">
<h4>isEmpty</h4>
<pre>public boolean isEmpty()</pre>
<divclass="block">Are there any verticies in the graph</div>
<dl>
<dt><spanclass="returnLabel">Returns:</span></dt>
<dd>true if there are no verticies in the graph</dd>
<pre>public boolean addVertex(<ahref="../../../cl/cromer/estructuras/Grafo.Vertex.html"title="class in cl.cromer.estructuras">Grafo.Vertex</a><<ahref="../../../cl/cromer/estructuras/Grafo.Dirigido.html"title="type parameter in Grafo.Dirigido">T</a>> v)</pre>
<dd>true if the vertex was added, false if it was already in the graph.</dd>
</dl>
</li>
</ul>
<aname="size--">
<!---->
</a>
<ulclass="blockList">
<liclass="blockList">
<h4>size</h4>
<pre>public int size()</pre>
<divclass="block">Get the vertex count.</div>
<dl>
<dt><spanclass="returnLabel">Returns:</span></dt>
<dd>the number of verticies in the graph.</dd>
</dl>
</li>
</ul>
<aname="getRootVertex--">
<!---->
</a>
<ulclass="blockList">
<liclass="blockList">
<h4>getRootVertex</h4>
<pre>public <ahref="../../../cl/cromer/estructuras/Grafo.Vertex.html"title="class in cl.cromer.estructuras">Grafo.Vertex</a><<ahref="../../../cl/cromer/estructuras/Grafo.Dirigido.html"title="type parameter in Grafo.Dirigido">T</a>> getRootVertex()</pre>
<divclass="block">Get the root vertex</div>
<dl>
<dt><spanclass="returnLabel">Returns:</span></dt>
<dd>the root vertex if one is set, null if no vertex has been set as
<pre>public void setRootVertex(<ahref="../../../cl/cromer/estructuras/Grafo.Vertex.html"title="class in cl.cromer.estructuras">Grafo.Vertex</a><<ahref="../../../cl/cromer/estructuras/Grafo.Dirigido.html"title="type parameter in Grafo.Dirigido">T</a>> root)</pre>
<divclass="block">Set a root vertex. If root does no exist in the graph it is added.</div>
the vertex to set as the root and optionally add if it does not
exist in the graph.</dd>
</dl>
</li>
</ul>
<aname="getVertex-int-">
<!---->
</a>
<ulclass="blockList">
<liclass="blockList">
<h4>getVertex</h4>
<pre>public <ahref="../../../cl/cromer/estructuras/Grafo.Vertex.html"title="class in cl.cromer.estructuras">Grafo.Vertex</a><<ahref="../../../cl/cromer/estructuras/Grafo.Dirigido.html"title="type parameter in Grafo.Dirigido">T</a>> getVertex(int n)</pre>
<dd><code>n</code> - the index [0, size()-1] of the Vertex to access</dd>
<dt><spanclass="returnLabel">Returns:</span></dt>
<dd>the nth Vertex</dd>
</dl>
</li>
</ul>
<aname="getVerticies--">
<!---->
</a>
<ulclass="blockList">
<liclass="blockList">
<h4>getVerticies</h4>
<pre>public java.util.List<<ahref="../../../cl/cromer/estructuras/Grafo.Vertex.html"title="class in cl.cromer.estructuras">Grafo.Vertex</a><<ahref="../../../cl/cromer/estructuras/Grafo.Dirigido.html"title="type parameter in Grafo.Dirigido">T</a>>> getVerticies()</pre>
<pre>public boolean addEdge(<ahref="../../../cl/cromer/estructuras/Grafo.Vertex.html"title="class in cl.cromer.estructuras">Grafo.Vertex</a><<ahref="../../../cl/cromer/estructuras/Grafo.Dirigido.html"title="type parameter in Grafo.Dirigido">T</a>> from,
<ahref="../../../cl/cromer/estructuras/Grafo.Vertex.html"title="class in cl.cromer.estructuras">Grafo.Vertex</a><<ahref="../../../cl/cromer/estructuras/Grafo.Dirigido.html"title="type parameter in Grafo.Dirigido">T</a>> to,
int cost)
throws java.lang.IllegalArgumentException</pre>
<divclass="block">Insert a directed, weighted Edge into the graph.</div>
<pre>public boolean insertBiEdge(<ahref="../../../cl/cromer/estructuras/Grafo.Vertex.html"title="class in cl.cromer.estructuras">Grafo.Vertex</a><<ahref="../../../cl/cromer/estructuras/Grafo.Dirigido.html"title="type parameter in Grafo.Dirigido">T</a>> from,
<ahref="../../../cl/cromer/estructuras/Grafo.Vertex.html"title="class in cl.cromer.estructuras">Grafo.Vertex</a><<ahref="../../../cl/cromer/estructuras/Grafo.Dirigido.html"title="type parameter in Grafo.Dirigido">T</a>> to,
int cost)
throws java.lang.IllegalArgumentException</pre>
<divclass="block">Insert a bidirectional Edge in the graph</div>
<dd>true if edges between both nodes were added, false otherwise</dd>
<dt><spanclass="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.IllegalArgumentException</code> - if from/to are not verticies in the graph</dd>
</dl>
</li>
</ul>
<aname="getEdges--">
<!---->
</a>
<ulclass="blockList">
<liclass="blockList">
<h4>getEdges</h4>
<pre>public java.util.List<<ahref="../../../cl/cromer/estructuras/Grafo.Edge.html"title="class in cl.cromer.estructuras">Grafo.Edge</a><<ahref="../../../cl/cromer/estructuras/Grafo.Dirigido.html"title="type parameter in Grafo.Dirigido">T</a>>> getEdges()</pre>
<pre>public boolean removeVertex(<ahref="../../../cl/cromer/estructuras/Grafo.Vertex.html"title="class in cl.cromer.estructuras">Grafo.Vertex</a><<ahref="../../../cl/cromer/estructuras/Grafo.Dirigido.html"title="type parameter in Grafo.Dirigido">T</a>> v)</pre>
<divclass="block">Remove a vertex from the graph</div>
<pre>public boolean removeEdge(<ahref="../../../cl/cromer/estructuras/Grafo.Vertex.html"title="class in cl.cromer.estructuras">Grafo.Vertex</a><<ahref="../../../cl/cromer/estructuras/Grafo.Dirigido.html"title="type parameter in Grafo.Dirigido">T</a>> from,
<ahref="../../../cl/cromer/estructuras/Grafo.Vertex.html"title="class in cl.cromer.estructuras">Grafo.Vertex</a><<ahref="../../../cl/cromer/estructuras/Grafo.Dirigido.html"title="type parameter in Grafo.Dirigido">T</a>> to)</pre>
<divclass="block">Remove an Edge from the graph</div>
<pre>public <E extends java.lang.Exception> void depthFirstSearch(<ahref="../../../cl/cromer/estructuras/Grafo.Vertex.html"title="class in cl.cromer.estructuras">Grafo.Vertex</a><<ahref="../../../cl/cromer/estructuras/Grafo.Dirigido.html"title="type parameter in Grafo.Dirigido">T</a>> v,
<ahref="../../../cl/cromer/estructuras/Grafo.VisitorEX.html"title="interface in cl.cromer.estructuras">Grafo.VisitorEX</a><<ahref="../../../cl/cromer/estructuras/Grafo.Dirigido.html"title="type parameter in Grafo.Dirigido">T</a>,E> visitor)
throws E extends java.lang.Exception</pre>
<divclass="block">Perform a depth first serach using recursion.</div>
<pre>public void breadthFirstSearch(<ahref="../../../cl/cromer/estructuras/Grafo.Vertex.html"title="class in cl.cromer.estructuras">Grafo.Vertex</a><<ahref="../../../cl/cromer/estructuras/Grafo.Dirigido.html"title="type parameter in Grafo.Dirigido">T</a>> v,
<ahref="../../../cl/cromer/estructuras/Grafo.Visitor.html"title="interface in cl.cromer.estructuras">Grafo.Visitor</a><<ahref="../../../cl/cromer/estructuras/Grafo.Dirigido.html"title="type parameter in Grafo.Dirigido">T</a>> visitor)</pre>
<divclass="block">Perform a breadth first search of this graph, starting at v.</div>
<pre>public <E extends java.lang.Exception> void breadthFirstSearch(<ahref="../../../cl/cromer/estructuras/Grafo.Vertex.html"title="class in cl.cromer.estructuras">Grafo.Vertex</a><<ahref="../../../cl/cromer/estructuras/Grafo.Dirigido.html"title="type parameter in Grafo.Dirigido">T</a>> v,
<ahref="../../../cl/cromer/estructuras/Grafo.VisitorEX.html"title="interface in cl.cromer.estructuras">Grafo.VisitorEX</a><<ahref="../../../cl/cromer/estructuras/Grafo.Dirigido.html"title="type parameter in Grafo.Dirigido">T</a>,E> visitor)
throws E extends java.lang.Exception</pre>
<divclass="block">Perform a breadth first search of this graph, starting at v. The vist may
be cut short if visitor throws an exception during a vist callback.</div>
<pre>public void dfsSpanningTree(<ahref="../../../cl/cromer/estructuras/Grafo.Vertex.html"title="class in cl.cromer.estructuras">Grafo.Vertex</a><<ahref="../../../cl/cromer/estructuras/Grafo.Dirigido.html"title="type parameter in Grafo.Dirigido">T</a>> v,
<ahref="../../../cl/cromer/estructuras/Grafo.DFSVisitor.html"title="interface in cl.cromer.estructuras">Grafo.DFSVisitor</a><<ahref="../../../cl/cromer/estructuras/Grafo.Dirigido.html"title="type parameter in Grafo.Dirigido">T</a>> visitor)</pre>
<divclass="block">Find the spanning tree using a DFS starting from v.</div>
visitor invoked after each vertex is visited and an edge is added
to the tree.</dd>
</dl>
</li>
</ul>
<aname="findVertexByName-java.lang.String-">
<!---->
</a>
<ulclass="blockList">
<liclass="blockList">
<h4>findVertexByName</h4>
<pre>public <ahref="../../../cl/cromer/estructuras/Grafo.Vertex.html"title="class in cl.cromer.estructuras">Grafo.Vertex</a><<ahref="../../../cl/cromer/estructuras/Grafo.Dirigido.html"title="type parameter in Grafo.Dirigido">T</a>> findVertexByName(java.lang.String name)</pre>
<divclass="block">Search the verticies for one with name.</div>
<pre>public <ahref="../../../cl/cromer/estructuras/Grafo.Vertex.html"title="class in cl.cromer.estructuras">Grafo.Vertex</a><<ahref="../../../cl/cromer/estructuras/Grafo.Dirigido.html"title="type parameter in Grafo.Dirigido">T</a>> findVertexByData(<ahref="../../../cl/cromer/estructuras/Grafo.Dirigido.html"title="type parameter in Grafo.Dirigido">T</a> data,
java.util.Comparator<<ahref="../../../cl/cromer/estructuras/Grafo.Dirigido.html"title="type parameter in Grafo.Dirigido">T</a>> compare)</pre>
<divclass="block">Search the verticies for one with data.</div>
<dd>the first vertex with a matching data, null if no matches are found</dd>
</dl>
</li>
</ul>
<aname="findCycles--">
<!---->
</a>
<ulclass="blockList">
<liclass="blockList">
<h4>findCycles</h4>
<pre>public <ahref="../../../cl/cromer/estructuras/Grafo.Edge.html"title="class in cl.cromer.estructuras">Grafo.Edge</a><<ahref="../../../cl/cromer/estructuras/Grafo.Dirigido.html"title="type parameter in Grafo.Dirigido">T</a>>[] findCycles()</pre>
<divclass="block">Search the graph for cycles. In order to detect cycles, we use a modified
depth first search called a colored DFS. All nodes are initially marked
white. When a node is encountered, it is marked grey, and when its
descendants are completely visited, it is marked black. If a grey node is
ever encountered, then there is a cycle.</div>
<dl>
<dt><spanclass="returnLabel">Returns:</span></dt>
<dd>the edges that form cycles in the graph. The array will be empty if
<pre>private void visit(<ahref="../../../cl/cromer/estructuras/Grafo.Vertex.html"title="class in cl.cromer.estructuras">Grafo.Vertex</a><<ahref="../../../cl/cromer/estructuras/Grafo.Dirigido.html"title="type parameter in Grafo.Dirigido">T</a>> v,
java.util.ArrayList<<ahref="../../../cl/cromer/estructuras/Grafo.Edge.html"title="class in cl.cromer.estructuras">Grafo.Edge</a><<ahref="../../../cl/cromer/estructuras/Grafo.Dirigido.html"title="type parameter in Grafo.Dirigido">T</a>>> cycleEdges)</pre>
<li><ahref="../../../cl/cromer/estructuras/Grafo.DFSVisitor.html"title="interface in cl.cromer.estructuras"><spanclass="typeNameLink">Prev Class</span></a></li>
<li><ahref="../../../cl/cromer/estructuras/Grafo.Edge.html"title="class in cl.cromer.estructuras"><spanclass="typeNameLink">Next Class</span></a></li>