|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectedu.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)
Forestvertex 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)
Hypergraphedge.
For hyperedges, this can be any nonnegative integer; for edges this
must be 2 (or 1 if self-loops 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)
Hypergraphedge to this graph.
Fails under the following circumstances:
edge is already an element of the graph
either 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()
ForestTree instances.
getTrees in interface Forest<V,E>Treespublic 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)
Forestvertex 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)
Forestvertex 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)
Forestvertex 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 | |||||||||