Package edu.uci.ics.jung.graph
Class DelegateForest<V,E>
- java.lang.Object
-
- edu.uci.ics.jung.graph.GraphDecorator<V,E>
-
- edu.uci.ics.jung.graph.DelegateForest<V,E>
-
- Type Parameters:
V
- the vertex typeE
- the edge type
- All Implemented Interfaces:
edu.uci.ics.jung.graph.DirectedGraph<V,E>
,edu.uci.ics.jung.graph.Forest<V,E>
,edu.uci.ics.jung.graph.Graph<V,E>
,edu.uci.ics.jung.graph.Hypergraph<V,E>
,java.io.Serializable
public class DelegateForest<V,E> extends edu.uci.ics.jung.graph.GraphDecorator<V,E> implements edu.uci.ics.jung.graph.Forest<V,E>
An implementation ofForest
that delegates to a specifiedDirectedGraph
instance.- See Also:
- Serialized Form
-
-
Constructor Summary
Constructors Constructor Description DelegateForest()
Creates an instance backed by a newDirectedSparseGraph
instance.DelegateForest(edu.uci.ics.jung.graph.DirectedGraph<V,E> delegate)
Creates an instance backed by the inputDirectedGraph
i
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
addEdge(E edge, java.util.Collection<? extends V> vertices)
boolean
addEdge(E e, V v1, V v2, edu.uci.ics.jung.graph.util.EdgeType edgeType)
Add an edge to the tree, connecting v1, the parent and v2, the child.void
addTree(edu.uci.ics.jung.graph.Tree<V,E> tree)
Addstree
to this graph as an element of this forest.boolean
addVertex(V vertex)
Add vertex as a root of the treeint
getChildCount(V vertex)
java.util.Collection<E>
getChildEdges(V vertex)
java.util.Collection<V>
getChildren(V v)
Returns the children ofv
.int
getDepth(V v)
computes and returns the depth of the tree from the root to the passed vertexint
getHeight()
computes and returns the height of the treeint
getIncidentCount(E edge)
V
getParent(V child)
E
getParentEdge(V vertex)
java.util.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 rootsjava.util.Collection<V>
getRoots()
Returns the root of each tree of this forest as aCollection
.java.util.Collection<edu.uci.ics.jung.graph.Tree<V,E>>
getTrees()
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 ifv
has no child nodes.boolean
isRoot(V v)
Returns true ifv
has no parent node.boolean
removeChild(V orphan)
removes a node from the tree, causing all descendants of the removed node also to be removedboolean
removeEdge(E edge)
Removesedge
from this tree, and the subtree rooted at the child vertex incident toedge
.boolean
removeEdge(E edge, boolean remove_subtree)
Removesedge
from this tree.boolean
removeVertex(V vertex)
Removesvertex
from this tree, and the subtree rooted atvertex
.boolean
removeVertex(V vertex, boolean remove_subtrees)
Removesvertex
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
-
-
-
-
Method Detail
-
addEdge
public boolean addEdge(E e, V v1, V v2, edu.uci.ics.jung.graph.util.EdgeType edgeType)
Add an edge to the tree, connecting v1, the parent and v2, the child. v1 must already exist in the tree, and v2 must not already exist the passed edge must be unique in the tree. Passing an edgeType other than EdgeType.DIRECTED may cause an illegal argument exception in the delegate graph.- Specified by:
addEdge
in interfaceedu.uci.ics.jung.graph.Graph<V,E>
- Overrides:
addEdge
in classedu.uci.ics.jung.graph.GraphDecorator<V,E>
- Parameters:
e
- a unique edge to addv1
- the parent nodev2
- the child nodeedgeType
- should be EdgeType.DIRECTED- Returns:
- true if this call mutates the underlying graph
- See Also:
Graph.addEdge(java.lang.Object, java.lang.Object, java.lang.Object, edu.uci.ics.jung.graph.util.EdgeType)
-
addVertex
public boolean addVertex(V vertex)
Add vertex as a root of the tree
-
removeEdge
public boolean removeEdge(E edge)
Removesedge
from this tree, and the subtree rooted at the child vertex incident toedge
. (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
public boolean removeEdge(E edge, boolean remove_subtree)
Removesedge
from this tree. Ifremove_subtree
istrue
, removes the subtree rooted at the child vertex incident toedge
. Otherwise, leaves the subtree intact as a new component tree of this forest.- Parameters:
edge
- the edge to removeremove_subtree
- iftrue
, remove the subtree- Returns:
true
iff the tree was modified
-
removeVertex
public boolean removeVertex(V vertex)
Removesvertex
from this tree, and the subtree rooted atvertex
.
-
removeVertex
public boolean removeVertex(V vertex, boolean remove_subtrees)
Removesvertex
from this tree. Ifremove_subtrees
istrue
, removes the subtrees rooted at the children ofvertex
. Otherwise, leaves these subtrees intact as new component trees of this forest.- Parameters:
vertex
- the vertex to removeremove_subtrees
- iftrue
, remove the subtrees rooted atvertex
's children- Returns:
true
iff the tree was modified
-
getPath
public java.util.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.- Parameters:
child
- the last node in the path from the root- Returns:
- an ordered list of the nodes from root to child
-
getRoot
public V getRoot()
getter for the root of the tree returns null, as this tree has >1 roots- Returns:
- the root
-
setRoot
public void setRoot(V root)
adds root as a root of the tree- Parameters:
root
- the initial tree root
-
removeChild
public boolean removeChild(V orphan)
removes a node from the tree, causing all descendants of the removed node also to be removed- Parameters:
orphan
- the node to remove- Returns:
- whether this call mutates the underlying graph
-
getDepth
public int getDepth(V v)
computes and returns the depth of the tree from the root to the passed vertex- Parameters:
v
- the node who's depth is computed- Returns:
- the depth to the passed node.
-
getHeight
public int getHeight()
computes and returns the height of the tree- Returns:
- the height
-
isInternal
public boolean isInternal(V v)
computes and returns whether the passed node is neither the root, nor a leaf node.- Returns:
true
ifv
is neither a leaf nor a root
-
isLeaf
public boolean isLeaf(V v)
Returns true ifv
has no child nodes.
-
isRoot
public boolean isRoot(V v)
Returns true ifv
has no parent node.
-
getIncidentCount
public int getIncidentCount(E edge)
-
getRoots
public java.util.Collection<V> getRoots()
Returns the root of each tree of this forest as aCollection
.
-
addTree
public void addTree(edu.uci.ics.jung.graph.Tree<V,E> tree)
Addstree
to this graph as an element of this forest.- Parameters:
tree
- the tree to add to this forest as a component
-
getChildCount
public int getChildCount(V vertex)
-
-