<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (version 1.7.0_79) on Sun Apr 03 00:28:29 PDT 2016 -->
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>DirectedAcyclicGraph (JGraphT : a free Java graph library)</title>
<meta name="date" content="2016-04-03">
<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
</head>
<body>
<script type="text/javascript"><!--
    if (location.href.indexOf('is-external=true') == -1) {
        parent.document.title="DirectedAcyclicGraph (JGraphT : a free Java graph library)";
    }
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar_top">
<!--   -->
</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/DirectedAcyclicGraph.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../index-all.html">Index</a></li>
<li><a href="../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li>Prev Class</li>
<li><a href="../../../../org/jgrapht/experimental/dag/DirectedAcyclicGraph.CycleFoundException.html" title="class in org.jgrapht.experimental.dag"><span class="strong">Next Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?org/jgrapht/experimental/dag/DirectedAcyclicGraph.html" target="_top">Frames</a></li>
<li><a href="DirectedAcyclicGraph.html" target="_top">No Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_top");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li><a href="#nested_class_summary">Nested</a>&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method_summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method_detail">Method</a></li>
</ul>
</div>
<a name="skip-navbar_top">
<!--   -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">org.jgrapht.experimental.dag</div>
<h2 title="Class DirectedAcyclicGraph" class="title">Class DirectedAcyclicGraph&lt;V,E&gt;</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
<li>
<ul class="inheritance">
<li><a href="../../../../org/jgrapht/graph/AbstractGraph.html" title="class in org.jgrapht.graph">org.jgrapht.graph.AbstractGraph</a>&lt;V,E&gt;</li>
<li>
<ul class="inheritance">
<li><a href="../../../../org/jgrapht/graph/AbstractBaseGraph.html" title="class in org.jgrapht.graph">org.jgrapht.graph.AbstractBaseGraph</a>&lt;V,E&gt;</li>
<li>
<ul class="inheritance">
<li><a href="../../../../org/jgrapht/graph/SimpleDirectedGraph.html" title="class in org.jgrapht.graph">org.jgrapht.graph.SimpleDirectedGraph</a>&lt;V,E&gt;</li>
<li>
<ul class="inheritance">
<li>org.jgrapht.experimental.dag.DirectedAcyclicGraph&lt;V,E&gt;</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Implemented Interfaces:</dt>
<dd><a href="http://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Cloneable.html?is-external=true" title="class or interface in java.lang">Cloneable</a>, <a href="../../../../org/jgrapht/DirectedGraph.html" title="interface in org.jgrapht">DirectedGraph</a>&lt;V,E&gt;, <a href="../../../../org/jgrapht/Graph.html" title="interface in org.jgrapht">Graph</a>&lt;V,E&gt;</dd>
</dl>
<hr>
<br>
<pre>public class <span class="strong">DirectedAcyclicGraph&lt;V,E&gt;</span>
extends <a href="../../../../org/jgrapht/graph/SimpleDirectedGraph.html" title="class in org.jgrapht.graph">SimpleDirectedGraph</a>&lt;V,E&gt;</pre>
<div class="block"><p>DirectedAcyclicGraph implements a DAG that can be modified (vertices &amp;
 edges added and removed), is guaranteed to remain acyclic, and provides fast
 topological order iteration.</p>

 <p>This is done using a dynamic topological sort which is based on the
 algorithm PK described in "D. Pearce &amp; P. Kelly, 2007: A Dynamic
 Topological Sort Algorithm for Directed Acyclic Graphs", (see <a
 href="http://www.mcs.vuw.ac.nz/~djp/files/PK-JEA07.pdf">Paper</a> or <a
 href="http://doi.acm.org/10.1145/1187436.1210590">ACM link</a> for details).
 </p>

 <p>The implementation differs from the algorithm specified in the above paper
 in some ways, perhaps most notably in that the topological ordering is stored
 by default using two HashMaps, which will have some effects on runtime, but
 also allows for vertex addition and removal, and other operations which are
 helpful for manipulating or combining DAGs. This storage mechanism is
 pluggable for subclassers.</p>

 <p>This class makes no claims to thread safety, and concurrent usage from
 multiple threads will produce undefined results.</p></div>
<dl><dt><span class="strong">Author:</span></dt>
  <dd>Peter Giles, gilesp@u.washington.edu</dd>
<dt><span class="strong">See Also:</span></dt><dd><a href="../../../../serialized-form.html#org.jgrapht.experimental.dag.DirectedAcyclicGraph">Serialized Form</a></dd></dl>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== NESTED CLASS SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="nested_class_summary">
<!--   -->
</a>
<h3>Nested Class Summary</h3>
<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Nested Class Summary table, listing nested classes, and an explanation">
<caption><span>Nested Classes</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Class and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<td class="colLast"><code><strong><a href="../../../../org/jgrapht/experimental/dag/DirectedAcyclicGraph.CycleFoundException.html" title="class in org.jgrapht.experimental.dag">DirectedAcyclicGraph.CycleFoundException</a></strong></code>
<div class="block">Exception used in dfsF when a cycle is found</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<td class="colLast"><code><strong><a href="../../../../org/jgrapht/experimental/dag/DirectedAcyclicGraph.Region.html" title="class in org.jgrapht.experimental.dag">DirectedAcyclicGraph.Region</a></strong></code>
<div class="block">Region is an *inclusive* range of indices.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static interface&nbsp;</code></td>
<td class="colLast"><code><strong><a href="../../../../org/jgrapht/experimental/dag/DirectedAcyclicGraph.TopoOrderMapping.html" title="interface in org.jgrapht.experimental.dag">DirectedAcyclicGraph.TopoOrderMapping</a>&lt;<a href="../../../../org/jgrapht/experimental/dag/DirectedAcyclicGraph.TopoOrderMapping.html" title="type parameter in DirectedAcyclicGraph.TopoOrderMapping">V</a>&gt;</strong></code>
<div class="block">For performance tuning, an interface for storing the topological ordering</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static interface&nbsp;</code></td>
<td class="colLast"><code><strong><a href="../../../../org/jgrapht/experimental/dag/DirectedAcyclicGraph.TopoOrderMappingFactory.html" title="interface in org.jgrapht.experimental.dag">DirectedAcyclicGraph.TopoOrderMappingFactory</a>&lt;<a href="../../../../org/jgrapht/experimental/dag/DirectedAcyclicGraph.TopoOrderMappingFactory.html" title="type parameter in DirectedAcyclicGraph.TopoOrderMappingFactory">V</a>&gt;</strong></code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>class&nbsp;</code></td>
<td class="colLast"><code><strong><a href="../../../../org/jgrapht/experimental/dag/DirectedAcyclicGraph.TopoVertexMap.html" title="class in org.jgrapht.experimental.dag">DirectedAcyclicGraph.TopoVertexMap</a></strong></code>
<div class="block">For performance and flexibility uses an ArrayList for topological index
 to vertex mapping, and a HashMap for vertex to topological index mapping.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static interface&nbsp;</code></td>
<td class="colLast"><code><strong><a href="../../../../org/jgrapht/experimental/dag/DirectedAcyclicGraph.Visited.html" title="interface in org.jgrapht.experimental.dag">DirectedAcyclicGraph.Visited</a></strong></code>
<div class="block">this interface allows specification of a strategy for marking vertices as
 visited (based on their topological index, so the vertex type isn't part
 of the interface).</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<td class="colLast"><code><strong><a href="../../../../org/jgrapht/experimental/dag/DirectedAcyclicGraph.VisitedArrayImpl.html" title="class in org.jgrapht.experimental.dag">DirectedAcyclicGraph.VisitedArrayImpl</a></strong></code>
<div class="block">This implementation, somewhat to my surprise, is slower than the
 ArrayList version, probably due to its reallocation of the underlying
 array for every topology reorder that is required.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<td class="colLast"><code><strong><a href="../../../../org/jgrapht/experimental/dag/DirectedAcyclicGraph.VisitedArrayListImpl.html" title="class in org.jgrapht.experimental.dag">DirectedAcyclicGraph.VisitedArrayListImpl</a></strong></code>
<div class="block">This implementation seems to offer the best performance in most cases.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<td class="colLast"><code><strong><a href="../../../../org/jgrapht/experimental/dag/DirectedAcyclicGraph.VisitedBitSetImpl.html" title="class in org.jgrapht.experimental.dag">DirectedAcyclicGraph.VisitedBitSetImpl</a></strong></code>
<div class="block">This implementation is close to the performance of VisitedArrayListImpl,
 with 1/8 the memory usage.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static interface&nbsp;</code></td>
<td class="colLast"><code><strong><a href="../../../../org/jgrapht/experimental/dag/DirectedAcyclicGraph.VisitedFactory.html" title="interface in org.jgrapht.experimental.dag">DirectedAcyclicGraph.VisitedFactory</a></strong></code>
<div class="block">interface for a factory that vends Visited implementations</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<td class="colLast"><code><strong><a href="../../../../org/jgrapht/experimental/dag/DirectedAcyclicGraph.VisitedHashSetImpl.html" title="class in org.jgrapht.experimental.dag">DirectedAcyclicGraph.VisitedHashSetImpl</a></strong></code>
<div class="block">This implementation doesn't seem to perform as well, though I can imagine
 circumstances where it should shine (lots and lots of vertices).</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="nested_classes_inherited_from_class_org.jgrapht.graph.AbstractBaseGraph">
<!--   -->
</a>
<h3>Nested classes/interfaces inherited from class&nbsp;org.jgrapht.graph.<a href="../../../../org/jgrapht/graph/AbstractBaseGraph.html" title="class in org.jgrapht.graph">AbstractBaseGraph</a></h3>
<code><a href="../../../../org/jgrapht/graph/AbstractBaseGraph.DirectedEdgeContainer.html" title="class in org.jgrapht.graph">AbstractBaseGraph.DirectedEdgeContainer</a>&lt;<a href="../../../../org/jgrapht/graph/AbstractBaseGraph.DirectedEdgeContainer.html" title="type parameter in AbstractBaseGraph.DirectedEdgeContainer">VV</a>,<a href="../../../../org/jgrapht/graph/AbstractBaseGraph.DirectedEdgeContainer.html" title="type parameter in AbstractBaseGraph.DirectedEdgeContainer">EE</a>&gt;, <a href="../../../../org/jgrapht/graph/AbstractBaseGraph.DirectedSpecifics.html" title="class in org.jgrapht.graph">AbstractBaseGraph.DirectedSpecifics</a>, <a href="../../../../org/jgrapht/graph/AbstractBaseGraph.UndirectedSpecifics.html" title="class in org.jgrapht.graph">AbstractBaseGraph.UndirectedSpecifics</a></code></li>
</ul>
</li>
</ul>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor_summary">
<!--   -->
</a>
<h3>Constructor Summary</h3>
<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colOne" scope="col">Constructor and Description</th>
</tr>
<tr class="altColor">
<td class="colOne"><code><strong><a href="../../../../org/jgrapht/experimental/dag/DirectedAcyclicGraph.html#DirectedAcyclicGraph(java.lang.Class)">DirectedAcyclicGraph</a></strong>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;? extends <a href="../../../../org/jgrapht/experimental/dag/DirectedAcyclicGraph.html" title="type parameter in DirectedAcyclicGraph">E</a>&gt;&nbsp;arg0)</code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colOne"><code><strong><a href="../../../../org/jgrapht/experimental/dag/DirectedAcyclicGraph.html#DirectedAcyclicGraph(org.jgrapht.EdgeFactory)">DirectedAcyclicGraph</a></strong>(<a href="../../../../org/jgrapht/EdgeFactory.html" title="interface in org.jgrapht">EdgeFactory</a>&lt;<a href="../../../../org/jgrapht/experimental/dag/DirectedAcyclicGraph.html" title="type parameter in DirectedAcyclicGraph">V</a>,<a href="../../../../org/jgrapht/experimental/dag/DirectedAcyclicGraph.html" title="type parameter in DirectedAcyclicGraph">E</a>&gt;&nbsp;ef)</code>&nbsp;</td>
</tr>
</table>
</li>
</ul>
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method_summary">
<!--   -->
</a>
<h3>Method Summary</h3>
<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="../../../../org/jgrapht/experimental/dag/DirectedAcyclicGraph.html" title="type parameter in DirectedAcyclicGraph">E</a></code></td>
<td class="colLast"><code><strong><a href="../../../../org/jgrapht/experimental/dag/DirectedAcyclicGraph.html#addDagEdge(V,%20V)">addDagEdge</a></strong>(<a href="../../../../org/jgrapht/experimental/dag/DirectedAcyclicGraph.html" title="type parameter in DirectedAcyclicGraph">V</a>&nbsp;fromVertex,
          <a href="../../../../org/jgrapht/experimental/dag/DirectedAcyclicGraph.html" title="type parameter in DirectedAcyclicGraph">V</a>&nbsp;toVertex)</code>
<div class="block">Adds the given edge and updates the internal topological order for
 consistency IFF

 
 there is not already an edge (fromVertex, toVertex) in the graph
 the edge does not induce a cycle in the graph
 </div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><strong><a href="../../../../org/jgrapht/experimental/dag/DirectedAcyclicGraph.html#addDagEdge(V,%20V,%20E)">addDagEdge</a></strong>(<a href="../../../../org/jgrapht/experimental/dag/DirectedAcyclicGraph.html" title="type parameter in DirectedAcyclicGraph">V</a>&nbsp;fromVertex,
          <a href="../../../../org/jgrapht/experimental/dag/DirectedAcyclicGraph.html" title="type parameter in DirectedAcyclicGraph">V</a>&nbsp;toVertex,
          <a href="../../../../org/jgrapht/experimental/dag/DirectedAcyclicGraph.html" title="type parameter in DirectedAcyclicGraph">E</a>&nbsp;e)</code>
<div class="block">Adds the given edge and updates the internal topological order for
 consistency IFF

 
 the given edge is not already a member of the graph
 there is not already an edge (fromVertex, toVertex) in the graph
 the edge does not induce a cycle in the graph
 </div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="../../../../org/jgrapht/experimental/dag/DirectedAcyclicGraph.html" title="type parameter in DirectedAcyclicGraph">E</a></code></td>
<td class="colLast"><code><strong><a href="../../../../org/jgrapht/experimental/dag/DirectedAcyclicGraph.html#addEdge(V,%20V)">addEdge</a></strong>(<a href="../../../../org/jgrapht/experimental/dag/DirectedAcyclicGraph.html" title="type parameter in DirectedAcyclicGraph">V</a>&nbsp;sourceVertex,
       <a href="../../../../org/jgrapht/experimental/dag/DirectedAcyclicGraph.html" title="type parameter in DirectedAcyclicGraph">V</a>&nbsp;targetVertex)</code>
<div class="block">identical to <a href="../../../../org/jgrapht/experimental/dag/DirectedAcyclicGraph.html#addDagEdge(V,%20V)"><code>addDagEdge(Object, Object)</code></a>, except an unchecked
 <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang"><code>IllegalArgumentException</code></a> is thrown if a cycle would have been
 induced by this edge</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><strong><a href="../../../../org/jgrapht/experimental/dag/DirectedAcyclicGraph.html#addEdge(V,%20V,%20E)">addEdge</a></strong>(<a href="../../../../org/jgrapht/experimental/dag/DirectedAcyclicGraph.html" title="type parameter in DirectedAcyclicGraph">V</a>&nbsp;sourceVertex,
       <a href="../../../../org/jgrapht/experimental/dag/DirectedAcyclicGraph.html" title="type parameter in DirectedAcyclicGraph">V</a>&nbsp;targetVertex,
       <a href="../../../../org/jgrapht/experimental/dag/DirectedAcyclicGraph.html" title="type parameter in DirectedAcyclicGraph">E</a>&nbsp;edge)</code>
<div class="block">identical to <a href="../../../../org/jgrapht/experimental/dag/DirectedAcyclicGraph.html#addDagEdge(V,%20V,%20E)"><code>addDagEdge(Object, Object, Object)</code></a>, except an
 unchecked <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang"><code>IllegalArgumentException</code></a> is thrown if a cycle would
 have been induced by this edge</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><strong><a href="../../../../org/jgrapht/experimental/dag/DirectedAcyclicGraph.html#addVertex(V)">addVertex</a></strong>(<a href="../../../../org/jgrapht/experimental/dag/DirectedAcyclicGraph.html" title="type parameter in DirectedAcyclicGraph">V</a>&nbsp;v)</code>
<div class="block">adds the vertex if it wasn't already in the graph, and puts it at the top
 of the internal topological vertex ordering</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><strong><a href="../../../../org/jgrapht/experimental/dag/DirectedAcyclicGraph.html#addVertex(V,%20boolean)">addVertex</a></strong>(<a href="../../../../org/jgrapht/experimental/dag/DirectedAcyclicGraph.html" title="type parameter in DirectedAcyclicGraph">V</a>&nbsp;v,
         boolean&nbsp;addToTop)</code>
<div class="block">adds the vertex if it wasn't already in the graph, and puts it either at
 the top or the bottom of the topological ordering, depending on the value
 of addToTop.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/util/Iterator.html?is-external=true" title="class or interface in java.util">Iterator</a>&lt;<a href="../../../../org/jgrapht/experimental/dag/DirectedAcyclicGraph.html" title="type parameter in DirectedAcyclicGraph">V</a>&gt;</code></td>
<td class="colLast"><code><strong><a href="../../../../org/jgrapht/experimental/dag/DirectedAcyclicGraph.html#iterator()">iterator</a></strong>()</code>
<div class="block">iterator will traverse the vertices in topological order, meaning that
 for a directed graph G = (V,E), if there exists a path from vertex va to
 vertex vb then va is guaranteed to come before vertex vb in the iteration
 order.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><strong><a href="../../../../org/jgrapht/experimental/dag/DirectedAcyclicGraph.html#removeAllVertices(java.util.Collection)">removeAllVertices</a></strong>(<a href="http://docs.oracle.com/javase/7/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;? extends <a href="../../../../org/jgrapht/experimental/dag/DirectedAcyclicGraph.html" title="type parameter in DirectedAcyclicGraph">V</a>&gt;&nbsp;arg0)</code>
<div class="block">Removes all the vertices in this graph that are also contained in the
 specified vertex collection.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><strong><a href="../../../../org/jgrapht/experimental/dag/DirectedAcyclicGraph.html#removeVertex(V)">removeVertex</a></strong>(<a href="../../../../org/jgrapht/experimental/dag/DirectedAcyclicGraph.html" title="type parameter in DirectedAcyclicGraph">V</a>&nbsp;v)</code>
<div class="block">Removes the specified vertex from this graph including all its touching
 edges if present.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods_inherited_from_class_org.jgrapht.graph.SimpleDirectedGraph">
<!--   -->
</a>
<h3>Methods inherited from class&nbsp;org.jgrapht.graph.<a href="../../../../org/jgrapht/graph/SimpleDirectedGraph.html" title="class in org.jgrapht.graph">SimpleDirectedGraph</a></h3>
<code><a href="../../../../org/jgrapht/graph/SimpleDirectedGraph.html#builder(java.lang.Class)">builder</a>, <a href="../../../../org/jgrapht/graph/SimpleDirectedGraph.html#builder(org.jgrapht.EdgeFactory)">builder</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="methods_inherited_from_class_org.jgrapht.graph.AbstractBaseGraph">
<!--   -->
</a>
<h3>Methods inherited from class&nbsp;org.jgrapht.graph.<a href="../../../../org/jgrapht/graph/AbstractBaseGraph.html" title="class in org.jgrapht.graph">AbstractBaseGraph</a></h3>
<code><a href="../../../../org/jgrapht/graph/AbstractBaseGraph.html#clone()">clone</a>, <a href="../../../../org/jgrapht/graph/AbstractBaseGraph.html#containsEdge(E)">containsEdge</a>, <a href="../../../../org/jgrapht/graph/AbstractBaseGraph.html#containsVertex(V)">containsVertex</a>, <a href="../../../../org/jgrapht/graph/AbstractBaseGraph.html#createDirectedSpecifics()">createDirectedSpecifics</a>, <a href="../../../../org/jgrapht/graph/AbstractBaseGraph.html#createUndirectedSpecifics()">createUndirectedSpecifics</a>, <a href="../../../../org/jgrapht/graph/AbstractBaseGraph.html#degreeOf(V)">degreeOf</a>, <a href="../../../../org/jgrapht/graph/AbstractBaseGraph.html#edgeSet()">edgeSet</a>, <a href="../../../../org/jgrapht/graph/AbstractBaseGraph.html#edgesOf(V)">edgesOf</a>, <a href="../../../../org/jgrapht/graph/AbstractBaseGraph.html#getAllEdges(V,%20V)">getAllEdges</a>, <a href="../../../../org/jgrapht/graph/AbstractBaseGraph.html#getEdge(V,%20V)">getEdge</a>, <a href="../../../../org/jgrapht/graph/AbstractBaseGraph.html#getEdgeFactory()">getEdgeFactory</a>, <a href="../../../../org/jgrapht/graph/AbstractBaseGraph.html#getEdgeSource(E)">getEdgeSource</a>, <a href="../../../../org/jgrapht/graph/AbstractBaseGraph.html#getEdgeTarget(E)">getEdgeTarget</a>, <a href="../../../../org/jgrapht/graph/AbstractBaseGraph.html#getEdgeWeight(E)">getEdgeWeight</a>, <a href="../../../../org/jgrapht/graph/AbstractBaseGraph.html#incomingEdgesOf(V)">incomingEdgesOf</a>, <a href="../../../../org/jgrapht/graph/AbstractBaseGraph.html#inDegreeOf(V)">inDegreeOf</a>, <a href="../../../../org/jgrapht/graph/AbstractBaseGraph.html#isAllowingLoops()">isAllowingLoops</a>, <a href="../../../../org/jgrapht/graph/AbstractBaseGraph.html#isAllowingMultipleEdges()">isAllowingMultipleEdges</a>, <a href="../../../../org/jgrapht/graph/AbstractBaseGraph.html#outDegreeOf(V)">outDegreeOf</a>, <a href="../../../../org/jgrapht/graph/AbstractBaseGraph.html#outgoingEdgesOf(V)">outgoingEdgesOf</a>, <a href="../../../../org/jgrapht/graph/AbstractBaseGraph.html#removeEdge(E)">removeEdge</a>, <a href="../../../../org/jgrapht/graph/AbstractBaseGraph.html#removeEdge(V,%20V)">removeEdge</a>, <a href="../../../../org/jgrapht/graph/AbstractBaseGraph.html#setEdgeSetFactory(org.jgrapht.graph.EdgeSetFactory)">setEdgeSetFactory</a>, <a href="../../../../org/jgrapht/graph/AbstractBaseGraph.html#setEdgeWeight(E,%20double)">setEdgeWeight</a>, <a href="../../../../org/jgrapht/graph/AbstractBaseGraph.html#vertexSet()">vertexSet</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="methods_inherited_from_class_org.jgrapht.graph.AbstractGraph">
<!--   -->
</a>
<h3>Methods inherited from class&nbsp;org.jgrapht.graph.<a href="../../../../org/jgrapht/graph/AbstractGraph.html" title="class in org.jgrapht.graph">AbstractGraph</a></h3>
<code><a href="../../../../org/jgrapht/graph/AbstractGraph.html#assertVertexExist(V)">assertVertexExist</a>, <a href="../../../../org/jgrapht/graph/AbstractGraph.html#containsEdge(V,%20V)">containsEdge</a>, <a href="../../../../org/jgrapht/graph/AbstractGraph.html#equals(java.lang.Object)">equals</a>, <a href="../../../../org/jgrapht/graph/AbstractGraph.html#hashCode()">hashCode</a>, <a href="../../../../org/jgrapht/graph/AbstractGraph.html#removeAllEdges(java.util.Collection)">removeAllEdges</a>, <a href="../../../../org/jgrapht/graph/AbstractGraph.html#removeAllEdges(E[])">removeAllEdges</a>, <a href="../../../../org/jgrapht/graph/AbstractGraph.html#removeAllEdges(V,%20V)">removeAllEdges</a>, <a href="../../../../org/jgrapht/graph/AbstractGraph.html#toString()">toString</a>, <a href="../../../../org/jgrapht/graph/AbstractGraph.html#toStringFromSets(java.util.Collection,%20java.util.Collection,%20boolean)">toStringFromSets</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="methods_inherited_from_class_java.lang.Object">
<!--   -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
<code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long,%20int)" title="class or interface in java.lang">wait</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="methods_inherited_from_class_org.jgrapht.DirectedGraph">
<!--   -->
</a>
<h3>Methods inherited from interface&nbsp;org.jgrapht.<a href="../../../../org/jgrapht/DirectedGraph.html" title="interface in org.jgrapht">DirectedGraph</a></h3>
<code><a href="../../../../org/jgrapht/DirectedGraph.html#incomingEdgesOf(V)">incomingEdgesOf</a>, <a href="../../../../org/jgrapht/DirectedGraph.html#inDegreeOf(V)">inDegreeOf</a>, <a href="../../../../org/jgrapht/DirectedGraph.html#outDegreeOf(V)">outDegreeOf</a>, <a href="../../../../org/jgrapht/DirectedGraph.html#outgoingEdgesOf(V)">outgoingEdgesOf</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="methods_inherited_from_class_org.jgrapht.Graph">
<!--   -->
</a>
<h3>Methods inherited from interface&nbsp;org.jgrapht.<a href="../../../../org/jgrapht/Graph.html" title="interface in org.jgrapht">Graph</a></h3>
<code><a href="../../../../org/jgrapht/Graph.html#containsEdge(E)">containsEdge</a>, <a href="../../../../org/jgrapht/Graph.html#containsEdge(V,%20V)">containsEdge</a>, <a href="../../../../org/jgrapht/Graph.html#containsVertex(V)">containsVertex</a>, <a href="../../../../org/jgrapht/Graph.html#edgeSet()">edgeSet</a>, <a href="../../../../org/jgrapht/Graph.html#edgesOf(V)">edgesOf</a>, <a href="../../../../org/jgrapht/Graph.html#getAllEdges(V,%20V)">getAllEdges</a>, <a href="../../../../org/jgrapht/Graph.html#getEdge(V,%20V)">getEdge</a>, <a href="../../../../org/jgrapht/Graph.html#getEdgeFactory()">getEdgeFactory</a>, <a href="../../../../org/jgrapht/Graph.html#getEdgeSource(E)">getEdgeSource</a>, <a href="../../../../org/jgrapht/Graph.html#getEdgeTarget(E)">getEdgeTarget</a>, <a href="../../../../org/jgrapht/Graph.html#getEdgeWeight(E)">getEdgeWeight</a>, <a href="../../../../org/jgrapht/Graph.html#removeAllEdges(java.util.Collection)">removeAllEdges</a>, <a href="../../../../org/jgrapht/Graph.html#removeAllEdges(V,%20V)">removeAllEdges</a>, <a href="../../../../org/jgrapht/Graph.html#removeEdge(E)">removeEdge</a>, <a href="../../../../org/jgrapht/Graph.html#removeEdge(V,%20V)">removeEdge</a>, <a href="../../../../org/jgrapht/Graph.html#vertexSet()">vertexSet</a></code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor_detail">
<!--   -->
</a>
<h3>Constructor Detail</h3>
<a name="DirectedAcyclicGraph(java.lang.Class)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>DirectedAcyclicGraph</h4>
<pre>public&nbsp;DirectedAcyclicGraph(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;? extends <a href="../../../../org/jgrapht/experimental/dag/DirectedAcyclicGraph.html" title="type parameter in DirectedAcyclicGraph">E</a>&gt;&nbsp;arg0)</pre>
</li>
</ul>
<a name="DirectedAcyclicGraph(org.jgrapht.EdgeFactory)">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>DirectedAcyclicGraph</h4>
<pre>public&nbsp;DirectedAcyclicGraph(<a href="../../../../org/jgrapht/EdgeFactory.html" title="interface in org.jgrapht">EdgeFactory</a>&lt;<a href="../../../../org/jgrapht/experimental/dag/DirectedAcyclicGraph.html" title="type parameter in DirectedAcyclicGraph">V</a>,<a href="../../../../org/jgrapht/experimental/dag/DirectedAcyclicGraph.html" title="type parameter in DirectedAcyclicGraph">E</a>&gt;&nbsp;ef)</pre>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method_detail">
<!--   -->
</a>
<h3>Method Detail</h3>
<a name="iterator()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>iterator</h4>
<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/util/Iterator.html?is-external=true" title="class or interface in java.util">Iterator</a>&lt;<a href="../../../../org/jgrapht/experimental/dag/DirectedAcyclicGraph.html" title="type parameter in DirectedAcyclicGraph">V</a>&gt;&nbsp;iterator()</pre>
<div class="block">iterator will traverse the vertices in topological order, meaning that
 for a directed graph G = (V,E), if there exists a path from vertex va to
 vertex vb then va is guaranteed to come before vertex vb in the iteration
 order.</div>
<dl><dt><span class="strong">Returns:</span></dt><dd>an iterator that will traverse the graph in topological order</dd></dl>
</li>
</ul>
<a name="addVertex(java.lang.Object)">
<!--   -->
</a><a name="addVertex(V)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>addVertex</h4>
<pre>public&nbsp;boolean&nbsp;addVertex(<a href="../../../../org/jgrapht/experimental/dag/DirectedAcyclicGraph.html" title="type parameter in DirectedAcyclicGraph">V</a>&nbsp;v)</pre>
<div class="block">adds the vertex if it wasn't already in the graph, and puts it at the top
 of the internal topological vertex ordering</div>
<dl>
<dt><strong>Specified by:</strong></dt>
<dd><code><a href="../../../../org/jgrapht/Graph.html#addVertex(V)">addVertex</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/jgrapht/Graph.html" title="interface in org.jgrapht">Graph</a>&lt;<a href="../../../../org/jgrapht/experimental/dag/DirectedAcyclicGraph.html" title="type parameter in DirectedAcyclicGraph">V</a>,<a href="../../../../org/jgrapht/experimental/dag/DirectedAcyclicGraph.html" title="type parameter in DirectedAcyclicGraph">E</a>&gt;</code></dd>
<dt><strong>Overrides:</strong></dt>
<dd><code><a href="../../../../org/jgrapht/graph/AbstractBaseGraph.html#addVertex(V)">addVertex</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/jgrapht/graph/AbstractBaseGraph.html" title="class in org.jgrapht.graph">AbstractBaseGraph</a>&lt;<a href="../../../../org/jgrapht/experimental/dag/DirectedAcyclicGraph.html" title="type parameter in DirectedAcyclicGraph">V</a>,<a href="../../../../org/jgrapht/experimental/dag/DirectedAcyclicGraph.html" title="type parameter in DirectedAcyclicGraph">E</a>&gt;</code></dd>
<dt><span class="strong">Parameters:</span></dt><dd><code>v</code> - vertex to be added to this graph.</dd>
<dt><span class="strong">Returns:</span></dt><dd><tt>true</tt> if this graph did not already contain the specified
 vertex.</dd><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../org/jgrapht/Graph.html#addVertex(V)"><code>Graph.addVertex(Object)</code></a></dd></dl>
</li>
</ul>
<a name="addVertex(java.lang.Object,boolean)">
<!--   -->
</a><a name="addVertex(V, boolean)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>addVertex</h4>
<pre>public&nbsp;boolean&nbsp;addVertex(<a href="../../../../org/jgrapht/experimental/dag/DirectedAcyclicGraph.html" title="type parameter in DirectedAcyclicGraph">V</a>&nbsp;v,
                boolean&nbsp;addToTop)</pre>
<div class="block">adds the vertex if it wasn't already in the graph, and puts it either at
 the top or the bottom of the topological ordering, depending on the value
 of addToTop. This may provide useful optimizations for merging
 DirectedAcyclicGraphs that become connected.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>v</code> - </dd><dd><code>addToTop</code> - </dd>
<dt><span class="strong">Returns:</span></dt><dd>whether new vertex was added</dd></dl>
</li>
</ul>
<a name="addDagEdge(java.lang.Object,java.lang.Object)">
<!--   -->
</a><a name="addDagEdge(V, V)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>addDagEdge</h4>
<pre>public&nbsp;<a href="../../../../org/jgrapht/experimental/dag/DirectedAcyclicGraph.html" title="type parameter in DirectedAcyclicGraph">E</a>&nbsp;addDagEdge(<a href="../../../../org/jgrapht/experimental/dag/DirectedAcyclicGraph.html" title="type parameter in DirectedAcyclicGraph">V</a>&nbsp;fromVertex,
           <a href="../../../../org/jgrapht/experimental/dag/DirectedAcyclicGraph.html" title="type parameter in DirectedAcyclicGraph">V</a>&nbsp;toVertex)
             throws <a href="../../../../org/jgrapht/experimental/dag/DirectedAcyclicGraph.CycleFoundException.html" title="class in org.jgrapht.experimental.dag">DirectedAcyclicGraph.CycleFoundException</a></pre>
<div class="block"><p>Adds the given edge and updates the internal topological order for
 consistency IFF

 <UL>
 <li>there is not already an edge (fromVertex, toVertex) in the graph
 <li>the edge does not induce a cycle in the graph
 </ul></div>
<dl><dt><span class="strong">Returns:</span></dt><dd>null if the edge is already in the graph, else the created edge
 is returned</dd>
<dt><span class="strong">Throws:</span></dt>
<dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang">IllegalArgumentException</a></code> - If either fromVertex or toVertex is not
 a member of the graph</dd>
<dd><code><a href="../../../../org/jgrapht/experimental/dag/DirectedAcyclicGraph.CycleFoundException.html" title="class in org.jgrapht.experimental.dag">DirectedAcyclicGraph.CycleFoundException</a></code> - if the edge would induce a cycle in the graph</dd><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../org/jgrapht/Graph.html#addEdge(V,%20V,%20E)"><code>Graph.addEdge(Object, Object, Object)</code></a></dd></dl>
</li>
</ul>
<a name="addEdge(java.lang.Object,java.lang.Object)">
<!--   -->
</a><a name="addEdge(V, V)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>addEdge</h4>
<pre>public&nbsp;<a href="../../../../org/jgrapht/experimental/dag/DirectedAcyclicGraph.html" title="type parameter in DirectedAcyclicGraph">E</a>&nbsp;addEdge(<a href="../../../../org/jgrapht/experimental/dag/DirectedAcyclicGraph.html" title="type parameter in DirectedAcyclicGraph">V</a>&nbsp;sourceVertex,
        <a href="../../../../org/jgrapht/experimental/dag/DirectedAcyclicGraph.html" title="type parameter in DirectedAcyclicGraph">V</a>&nbsp;targetVertex)</pre>
<div class="block">identical to <a href="../../../../org/jgrapht/experimental/dag/DirectedAcyclicGraph.html#addDagEdge(V,%20V)"><code>addDagEdge(Object, Object)</code></a>, except an unchecked
 <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang"><code>IllegalArgumentException</code></a> is thrown if a cycle would have been
 induced by this edge</div>
<dl>
<dt><strong>Specified by:</strong></dt>
<dd><code><a href="../../../../org/jgrapht/Graph.html#addEdge(V,%20V)">addEdge</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/jgrapht/Graph.html" title="interface in org.jgrapht">Graph</a>&lt;<a href="../../../../org/jgrapht/experimental/dag/DirectedAcyclicGraph.html" title="type parameter in DirectedAcyclicGraph">V</a>,<a href="../../../../org/jgrapht/experimental/dag/DirectedAcyclicGraph.html" title="type parameter in DirectedAcyclicGraph">E</a>&gt;</code></dd>
<dt><strong>Overrides:</strong></dt>
<dd><code><a href="../../../../org/jgrapht/graph/AbstractBaseGraph.html#addEdge(V,%20V)">addEdge</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/jgrapht/graph/AbstractBaseGraph.html" title="class in org.jgrapht.graph">AbstractBaseGraph</a>&lt;<a href="../../../../org/jgrapht/experimental/dag/DirectedAcyclicGraph.html" title="type parameter in DirectedAcyclicGraph">V</a>,<a href="../../../../org/jgrapht/experimental/dag/DirectedAcyclicGraph.html" title="type parameter in DirectedAcyclicGraph">E</a>&gt;</code></dd>
<dt><span class="strong">Parameters:</span></dt><dd><code>sourceVertex</code> - source vertex of the edge.</dd><dd><code>targetVertex</code> - target vertex of the edge.</dd>
<dt><span class="strong">Returns:</span></dt><dd>The newly created edge if added to the graph, otherwise <code>
 null</code>.</dd><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../org/jgrapht/Graph.html#addEdge(V,%20V)"><code>Graph.addEdge(Object, Object)</code></a></dd></dl>
</li>
</ul>
<a name="addDagEdge(java.lang.Object,java.lang.Object,java.lang.Object)">
<!--   -->
</a><a name="addDagEdge(V, V, E)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>addDagEdge</h4>
<pre>public&nbsp;boolean&nbsp;addDagEdge(<a href="../../../../org/jgrapht/experimental/dag/DirectedAcyclicGraph.html" title="type parameter in DirectedAcyclicGraph">V</a>&nbsp;fromVertex,
                 <a href="../../../../org/jgrapht/experimental/dag/DirectedAcyclicGraph.html" title="type parameter in DirectedAcyclicGraph">V</a>&nbsp;toVertex,
                 <a href="../../../../org/jgrapht/experimental/dag/DirectedAcyclicGraph.html" title="type parameter in DirectedAcyclicGraph">E</a>&nbsp;e)
                   throws <a href="../../../../org/jgrapht/experimental/dag/DirectedAcyclicGraph.CycleFoundException.html" title="class in org.jgrapht.experimental.dag">DirectedAcyclicGraph.CycleFoundException</a></pre>
<div class="block"><p>Adds the given edge and updates the internal topological order for
 consistency IFF

 <UL>
 <li>the given edge is not already a member of the graph
 <li>there is not already an edge (fromVertex, toVertex) in the graph
 <li>the edge does not induce a cycle in the graph
 </ul></div>
<dl><dt><span class="strong">Returns:</span></dt><dd>true if the edge was added to the graph</dd>
<dt><span class="strong">Throws:</span></dt>
<dd><code><a href="../../../../org/jgrapht/experimental/dag/DirectedAcyclicGraph.CycleFoundException.html" title="class in org.jgrapht.experimental.dag">DirectedAcyclicGraph.CycleFoundException</a></code> - if adding an edge (fromVertex, toVertex) to
 the graph would induce a cycle.</dd><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../org/jgrapht/Graph.html#addEdge(V,%20V,%20E)"><code>Graph.addEdge(Object, Object, Object)</code></a></dd></dl>
</li>
</ul>
<a name="addEdge(java.lang.Object,java.lang.Object,java.lang.Object)">
<!--   -->
</a><a name="addEdge(V, V, E)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>addEdge</h4>
<pre>public&nbsp;boolean&nbsp;addEdge(<a href="../../../../org/jgrapht/experimental/dag/DirectedAcyclicGraph.html" title="type parameter in DirectedAcyclicGraph">V</a>&nbsp;sourceVertex,
              <a href="../../../../org/jgrapht/experimental/dag/DirectedAcyclicGraph.html" title="type parameter in DirectedAcyclicGraph">V</a>&nbsp;targetVertex,
              <a href="../../../../org/jgrapht/experimental/dag/DirectedAcyclicGraph.html" title="type parameter in DirectedAcyclicGraph">E</a>&nbsp;edge)</pre>
<div class="block">identical to <a href="../../../../org/jgrapht/experimental/dag/DirectedAcyclicGraph.html#addDagEdge(V,%20V,%20E)"><code>addDagEdge(Object, Object, Object)</code></a>, except an
 unchecked <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang"><code>IllegalArgumentException</code></a> is thrown if a cycle would
 have been induced by this edge</div>
<dl>
<dt><strong>Specified by:</strong></dt>
<dd><code><a href="../../../../org/jgrapht/Graph.html#addEdge(V,%20V,%20E)">addEdge</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/jgrapht/Graph.html" title="interface in org.jgrapht">Graph</a>&lt;<a href="../../../../org/jgrapht/experimental/dag/DirectedAcyclicGraph.html" title="type parameter in DirectedAcyclicGraph">V</a>,<a href="../../../../org/jgrapht/experimental/dag/DirectedAcyclicGraph.html" title="type parameter in DirectedAcyclicGraph">E</a>&gt;</code></dd>
<dt><strong>Overrides:</strong></dt>
<dd><code><a href="../../../../org/jgrapht/graph/AbstractBaseGraph.html#addEdge(V,%20V,%20E)">addEdge</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/jgrapht/graph/AbstractBaseGraph.html" title="class in org.jgrapht.graph">AbstractBaseGraph</a>&lt;<a href="../../../../org/jgrapht/experimental/dag/DirectedAcyclicGraph.html" title="type parameter in DirectedAcyclicGraph">V</a>,<a href="../../../../org/jgrapht/experimental/dag/DirectedAcyclicGraph.html" title="type parameter in DirectedAcyclicGraph">E</a>&gt;</code></dd>
<dt><span class="strong">Parameters:</span></dt><dd><code>sourceVertex</code> - source vertex of the edge.</dd><dd><code>targetVertex</code> - target vertex of the edge.</dd><dd><code>edge</code> - edge to be added to this graph.</dd>
<dt><span class="strong">Returns:</span></dt><dd><tt>true</tt> if this graph did not already contain the specified
 edge.</dd><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../org/jgrapht/Graph.html#addEdge(V,%20V,%20E)"><code>Graph.addEdge(Object, Object, Object)</code></a></dd></dl>
</li>
</ul>
<a name="removeVertex(java.lang.Object)">
<!--   -->
</a><a name="removeVertex(V)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>removeVertex</h4>
<pre>public&nbsp;boolean&nbsp;removeVertex(<a href="../../../../org/jgrapht/experimental/dag/DirectedAcyclicGraph.html" title="type parameter in DirectedAcyclicGraph">V</a>&nbsp;v)</pre>
<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/jgrapht/Graph.html#removeVertex(V)">Graph</a></code></strong></div>
<div class="block">Removes the specified vertex from this graph including all its touching
 edges if present. More formally, if the graph contains a vertex <code>
 u</code> such that <code>u.equals(v)</code>, the call removes all edges
 that touch <code>u</code> and then removes <code>u</code> itself. If no
 such <code>u</code> is found, the call leaves the graph unchanged.
 Returns <tt>true</tt> if the graph contained the specified vertex. (The
 graph will not contain the specified vertex once the call returns).

 <p>If the specified vertex is <code>null</code> returns <code>
 false</code>.</p></div>
<dl>
<dt><strong>Specified by:</strong></dt>
<dd><code><a href="../../../../org/jgrapht/Graph.html#removeVertex(V)">removeVertex</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/jgrapht/Graph.html" title="interface in org.jgrapht">Graph</a>&lt;<a href="../../../../org/jgrapht/experimental/dag/DirectedAcyclicGraph.html" title="type parameter in DirectedAcyclicGraph">V</a>,<a href="../../../../org/jgrapht/experimental/dag/DirectedAcyclicGraph.html" title="type parameter in DirectedAcyclicGraph">E</a>&gt;</code></dd>
<dt><strong>Overrides:</strong></dt>
<dd><code><a href="../../../../org/jgrapht/graph/AbstractBaseGraph.html#removeVertex(V)">removeVertex</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/jgrapht/graph/AbstractBaseGraph.html" title="class in org.jgrapht.graph">AbstractBaseGraph</a>&lt;<a href="../../../../org/jgrapht/experimental/dag/DirectedAcyclicGraph.html" title="type parameter in DirectedAcyclicGraph">V</a>,<a href="../../../../org/jgrapht/experimental/dag/DirectedAcyclicGraph.html" title="type parameter in DirectedAcyclicGraph">E</a>&gt;</code></dd>
<dt><span class="strong">Parameters:</span></dt><dd><code>v</code> - vertex to be removed from this graph, if present.</dd>
<dt><span class="strong">Returns:</span></dt><dd><code>true</code> if the graph contained the specified vertex;
 <code>false</code> otherwise.</dd><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../org/jgrapht/Graph.html#removeVertex(V)"><code>Graph.removeVertex(Object)</code></a></dd></dl>
</li>
</ul>
<a name="removeAllVertices(java.util.Collection)">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>removeAllVertices</h4>
<pre>public&nbsp;boolean&nbsp;removeAllVertices(<a href="http://docs.oracle.com/javase/7/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;? extends <a href="../../../../org/jgrapht/experimental/dag/DirectedAcyclicGraph.html" title="type parameter in DirectedAcyclicGraph">V</a>&gt;&nbsp;arg0)</pre>
<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/jgrapht/Graph.html#removeAllVertices(java.util.Collection)">Graph</a></code></strong></div>
<div class="block">Removes all the vertices in this graph that are also contained in the
 specified vertex collection. After this call returns, this graph will
 contain no vertices in common with the specified vertices. This method
 will invoke the <a href="../../../../org/jgrapht/Graph.html#removeVertex(V)"><code>Graph.removeVertex(Object)</code></a> method.</div>
<dl>
<dt><strong>Specified by:</strong></dt>
<dd><code><a href="../../../../org/jgrapht/Graph.html#removeAllVertices(java.util.Collection)">removeAllVertices</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/jgrapht/Graph.html" title="interface in org.jgrapht">Graph</a>&lt;<a href="../../../../org/jgrapht/experimental/dag/DirectedAcyclicGraph.html" title="type parameter in DirectedAcyclicGraph">V</a>,<a href="../../../../org/jgrapht/experimental/dag/DirectedAcyclicGraph.html" title="type parameter in DirectedAcyclicGraph">E</a>&gt;</code></dd>
<dt><strong>Overrides:</strong></dt>
<dd><code><a href="../../../../org/jgrapht/graph/AbstractGraph.html#removeAllVertices(java.util.Collection)">removeAllVertices</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/jgrapht/graph/AbstractGraph.html" title="class in org.jgrapht.graph">AbstractGraph</a>&lt;<a href="../../../../org/jgrapht/experimental/dag/DirectedAcyclicGraph.html" title="type parameter in DirectedAcyclicGraph">V</a>,<a href="../../../../org/jgrapht/experimental/dag/DirectedAcyclicGraph.html" title="type parameter in DirectedAcyclicGraph">E</a>&gt;</code></dd>
<dt><span class="strong">Parameters:</span></dt><dd><code>arg0</code> - vertices to be removed from this graph.</dd>
<dt><span class="strong">Returns:</span></dt><dd><tt>true</tt> if this graph changed as a result of the call</dd><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../org/jgrapht/Graph.html#removeAllVertices(java.util.Collection)"><code>Graph.removeAllVertices(Collection)</code></a></dd></dl>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar_bottom">
<!--   -->
</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/DirectedAcyclicGraph.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../index-all.html">Index</a></li>
<li><a href="../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li>Prev Class</li>
<li><a href="../../../../org/jgrapht/experimental/dag/DirectedAcyclicGraph.CycleFoundException.html" title="class in org.jgrapht.experimental.dag"><span class="strong">Next Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?org/jgrapht/experimental/dag/DirectedAcyclicGraph.html" target="_top">Frames</a></li>
<li><a href="DirectedAcyclicGraph.html" target="_top">No Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_bottom");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li><a href="#nested_class_summary">Nested</a>&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method_summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method_detail">Method</a></li>
</ul>
</div>
<a name="skip-navbar_bottom">
<!--   -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
<p class="legalCopy"><small>Copyright &#169; 2016. All rights reserved.</small></p>
</body>
</html>