

PREV CLASS NEXT CLASS  FRAMES NO FRAMES  
SUMMARY: NESTED  FIELD  CONSTR  METHOD  DETAIL: FIELD  CONSTR  METHOD 
java.lang.Object edu.uci.ics.jung.graph.GraphDecorator<V,E> edu.uci.ics.jung.graph.DelegateForest<V,E>
V
 the vertex typeE
 the edge typepublic class DelegateForest<V,E>
An implementation of Forest
that delegates to a specified DirectedGraph
instance.
Field Summary 

Fields inherited from class edu.uci.ics.jung.graph.GraphDecorator 

delegate 
Constructor Summary  

DelegateForest()
Creates an instance backed by a new DirectedSparseGraph instance. 

DelegateForest(DirectedGraph<V,E> delegate)
Creates an instance backed by the input DirectedGraph i 
Method Summary  

boolean 
addEdge(E edge,
Collection<? extends V> vertices)
Adds edge to this graph. 
boolean 
addEdge(E e,
V v1,
V v2,
EdgeType edgeType)
Add an edge to the tree, connecting v1, the parent and v2, the child. 
void 
addTree(Tree<V,E> tree)
Adds tree to this graph as an element of this forest. 
boolean 
addVertex(V vertex)
Add vertex as a root of the tree 
int 
getChildCount(V vertex)
Returns the number of children that vertex has in this tree. 
Collection<E> 
getChildEdges(V vertex)
Returns the edges connecting vertex to its children
in this tree. 
Collection<V> 
getChildren(V v)
Returns the children of v . 
int 
getDepth(V v)
computes and returns the depth of the tree from the root to the passed vertex 
int 
getHeight()
computes and returns the height of the tree 
int 
getIncidentCount(E edge)
Returns the number of vertices that are incident to edge . 
V 
getParent(V child)
Returns the parent of vertex in this tree. 
E 
getParentEdge(V vertex)
Returns the edge connecting vertex to its parent in
this tree. 
List<V> 
getPath(V child)
returns an ordered list of the nodes beginning at the root and ending at the passed child node, including all intermediate nodes. 
V 
getRoot()
getter for the root of the tree returns null, as this tree has >1 roots 
Collection<V> 
getRoots()
Returns the root of each tree of this forest as a Collection . 
Collection<Tree<V,E>> 
getTrees()
Returns a view of this graph as a collection of Tree instances. 
boolean 
isInternal(V v)
computes and returns whether the passed node is neither the root, nor a leaf node. 
boolean 
isLeaf(V v)
Returns true if v has no child nodes. 
boolean 
isRoot(V v)
Returns true if v has no parent node. 
boolean 
removeChild(V orphan)
removes a node from the tree, causing all descendants of the removed node also to be removed 
boolean 
removeEdge(E edge)
Removes edge from this tree, and the subtree rooted
at the child vertex incident to edge . 
boolean 
removeEdge(E edge,
boolean remove_subtree)
Removes edge from this tree. 
boolean 
removeVertex(V vertex)
Removes vertex from this tree, and the subtree
rooted at vertex . 
boolean 
removeVertex(V vertex,
boolean remove_subtrees)
Removes vertex from this tree. 
void 
setRoot(V root)
adds root as a root of the tree 
Methods inherited from class edu.uci.ics.jung.graph.GraphDecorator 

addEdge, addEdge, containsEdge, containsVertex, degree, findEdge, findEdgeSet, getDefaultEdgeType, getDest, getEdgeCount, getEdgeCount, getEdges, getEdges, getEdgeType, getEndpoints, getIncidentEdges, getIncidentVertices, getInEdges, getNeighborCount, getNeighbors, getOpposite, getOutEdges, getPredecessorCount, getPredecessors, getSource, getSuccessorCount, getSuccessors, getVertexCount, getVertices, inDegree, isDest, isIncident, isNeighbor, isPredecessor, isSource, isSuccessor, outDegree 
Methods inherited from class java.lang.Object 

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait 
Methods inherited from interface edu.uci.ics.jung.graph.Graph 

addEdge, getDest, getEndpoints, getInEdges, getOpposite, getOutEdges, getPredecessorCount, getPredecessors, getSource, getSuccessorCount, getSuccessors, inDegree, isDest, isPredecessor, isSource, isSuccessor, outDegree 
Methods inherited from interface edu.uci.ics.jung.graph.Hypergraph 

addEdge, containsEdge, containsVertex, degree, findEdge, findEdgeSet, getDefaultEdgeType, getEdgeCount, getEdgeCount, getEdges, getEdges, getEdgeType, getIncidentEdges, getIncidentVertices, getNeighborCount, getNeighbors, getVertexCount, getVertices, isIncident, isNeighbor 
Constructor Detail 

public DelegateForest()
DirectedSparseGraph
instance.
public DelegateForest(DirectedGraph<V,E> delegate)
DirectedGraph
i
Method Detail 

public boolean addEdge(E e, V v1, V v2, EdgeType edgeType)
addEdge
in interface Graph<V,E>
addEdge
in class GraphDecorator<V,E>
e
 a unique edge to addv1
 the parent nodev2
 the child nodeedgeType
 should be EdgeType.DIRECTED
Graph.addEdge(java.lang.Object, java.lang.Object, java.lang.Object, edu.uci.ics.jung.graph.util.EdgeType)
public boolean addVertex(V vertex)
addVertex
in interface Hypergraph<V,E>
addVertex
in class GraphDecorator<V,E>
vertex
 the tree root to add
Hypergraph.addVertex(java.lang.Object)
public boolean removeEdge(E edge)
edge
from this tree, and the subtree rooted
at the child vertex incident to edge
.
(The subtree is removed to ensure that the tree in which the edge
was found is still a tree rather than a forest. To change this
behavior so that the
removeEdge
in interface Hypergraph<V,E>
removeEdge
in class GraphDecorator<V,E>
edge
 the edge to remove
true
iff the tree was modifiedHypergraph.removeEdge(java.lang.Object)
public boolean removeEdge(E edge, boolean remove_subtree)
edge
from this tree.
If remove_subtree
is true
, removes
the subtree rooted at the child vertex incident to edge
.
Otherwise, leaves the subtree intact as a new component tree of this
forest.
edge
 the edge to removeremove_subtree
 if true
, remove the subtree
true
iff the tree was modifiedpublic boolean removeVertex(V vertex)
vertex
from this tree, and the subtree
rooted at vertex
.
removeVertex
in interface Hypergraph<V,E>
removeVertex
in class GraphDecorator<V,E>
vertex
 the vertex to remove
true
iff the tree was modifiedHypergraph.removeVertex(java.lang.Object)
public boolean removeVertex(V vertex, boolean remove_subtrees)
vertex
from this tree.
If remove_subtrees
is true
, removes
the subtrees rooted at the children of vertex
.
Otherwise, leaves these subtrees intact as new component trees of this
forest.
vertex
 the vertex to removeremove_subtrees
 if true
, remove the subtrees
rooted at vertex
's children
true
iff the tree was modifiedpublic List<V> getPath(V child)
child
 the last node in the path from the root
public V getParent(V child)
Forest
vertex
in this tree.
(If vertex
is the root, returns null
.)
The parent of a vertex is defined as being its predecessor in the
(unique) shortest path from the root to this vertex.
This is a convenience method which is equivalent to
Graph.getPredecessors(vertex).iterator().next()
.
getParent
in interface Forest<V,E>
vertex
in this treeGraph.getPredecessors(Object)
,
Forest.getParentEdge(Object)
public V getRoot()
public void setRoot(V root)
root
 the initial tree rootpublic boolean removeChild(V orphan)
orphan
 the node to remove
public int getDepth(V v)
v
 the node who's depth is computed
public int getHeight()
public boolean isInternal(V v)
true
if v
is neither a leaf
nor a rootpublic boolean isLeaf(V v)
v
has no child nodes.
public Collection<V> getChildren(V v)
v
.
getChildren
in interface Forest<V,E>
v
 the vertex whose children are to be returned
Collection
of children of vertex
in this treeGraph.getSuccessors(Object)
,
Forest.getChildEdges(Object)
public boolean isRoot(V v)
v
has no parent node.
public int getIncidentCount(E edge)
Hypergraph
edge
.
For hyperedges, this can be any nonnegative integer; for edges this
must be 2 (or 1 if selfloops are permitted).
Equivalent to getIncidentVertices(edge).size()
.
getIncidentCount
in interface Hypergraph<V,E>
getIncidentCount
in class GraphDecorator<V,E>
edge
 the edge whose incident vertex count is to be returned
edge
.Hypergraph.getIncidentCount(java.lang.Object)
public boolean addEdge(E edge, Collection<? extends V> vertices)
Hypergraph
edge
to this graph.
Fails under the following circumstances:
edge
is already an element of the graph
edge
or vertices
is null
vertices
has the wrong number of vertices for the graph type
vertices
are already connected by another edge in this graph,
and this graph does not accept parallel edges
addEdge
in interface Hypergraph<V,E>
addEdge
in class GraphDecorator<V,E>
true
if the add is successful, and false
otherwiseHypergraph.addEdge(java.lang.Object, java.util.Collection)
public Collection<V> getRoots()
Collection
.
public Collection<Tree<V,E>> getTrees()
Forest
Tree
instances.
getTrees
in interface Forest<V,E>
Tree
spublic void addTree(Tree<V,E> tree)
tree
to this graph as an element of this forest.
tree
 the tree to add to this forest as a componentpublic int getChildCount(V vertex)
Forest
vertex
has in this tree.
The children of a vertex are defined as being the successors of
that vertex on the respective (unique) shortest paths from the root to
those vertices.
This is syntactic (maple) sugar for getSuccessorCount(vertex)
.
getChildCount
in interface Forest<V,E>
vertex
 the vertex whose child edges are to be returned
Collection
of edges connecting
vertex
to its children in this treeForest.getChildEdges(Object)
,
Forest.getChildren(Object)
,
Graph.getSuccessorCount(Object)
public Collection<E> getChildEdges(V vertex)
Forest
vertex
to its children
in this tree.
The children of a vertex are defined as being the successors of
that vertex on the respective (unique) shortest paths from the root to
those vertices.
This is syntactic (maple) sugar for getOutEdges(vertex)
.
getChildEdges
in interface Forest<V,E>
vertex
 the vertex whose child edges are to be returned
Collection
of edges connecting
vertex
to its children in this treeGraph.getOutEdges(Object)
,
Forest.getChildren(Object)
public E getParentEdge(V vertex)
Forest
vertex
to its parent in
this tree.
(If vertex
is the root, returns null
.)
The parent of a vertex is defined as being its predecessor in the
(unique) shortest path from the root to this vertex.
This is a convenience method which is equivalent to
Graph.getInEdges(vertex).iterator().next()
,
and also to Graph.findEdge(vertex, getParent(vertex))
.
getParentEdge
in interface Forest<V,E>
vertex
to its parent, or
null
if vertex
is the rootGraph.getInEdges(Object)
,
Forest.getParent(Object)


PREV CLASS NEXT CLASS  FRAMES NO FRAMES  
SUMMARY: NESTED  FIELD  CONSTR  METHOD  DETAIL: FIELD  CONSTR  METHOD 