V - the vertex typeE - the edge typepublic class DelegateTree<V,E> extends GraphDecorator<V,E> implements Tree<V,E>
Tree that delegates to
a specified instance of DirectedGraph.| Modifier and Type | Field and Description |
|---|---|
protected V |
root |
protected Map<V,Integer> |
vertex_depths |
delegate| Constructor and Description |
|---|
DelegateTree()
Creates an instance.
|
DelegateTree(DirectedGraph<V,E> graph)
Creates a new
DelegateTree which delegates to graph. |
DelegateTree(com.google.common.base.Supplier<DirectedGraph<V,E>> graphFactory)
create an instance with passed values.
|
| Modifier and Type | Method and Description |
|---|---|
boolean |
addChild(E edge,
V parent,
V child)
add the passed child node as a child of parent.
|
boolean |
addChild(E edge,
V parent,
V child,
EdgeType edgeType)
add the passed child node as a child of parent.
|
boolean |
addEdge(E edge,
Collection<? extends V> vertices) |
boolean |
addEdge(E e,
V v1,
V v2)
Add an edge to the tree, connecting v1, the parent and v2, the child.
|
boolean |
addEdge(E e,
V v1,
V v2,
EdgeType edgeType)
Add an edge to the tree, connecting v1, the parent and v2, the child.
|
boolean |
addVertex(V vertex)
Will set the root of the Tree, only if the Tree is empty and the
root is currently unset.
|
int |
getChildCount(V parent)
get the number of children of the passed parent node
|
Collection<E> |
getChildEdges(V vertex) |
Collection<V> |
getChildren(V parent)
get the immediate children nodes of the passed parent
|
int |
getDepth(V v)
computes and returns the depth of the tree from the
root to the passed vertex
|
static <V,E> com.google.common.base.Supplier<Tree<V,E>> |
getFactory() |
int |
getHeight()
Computes and returns the height of the tree.
|
int |
getIncidentCount(E edge) |
V |
getParent(V child)
get the single parent node of the passed child
|
E |
getParentEdge(V vertex) |
List<V> |
getPath(V vertex)
Returns an ordered list of the nodes beginning at the root
and ending at
vertex, including all intermediate
nodes. |
V |
getRoot()
getter for the root of the tree
|
Collection<Tree<V,E>> |
getTrees() |
boolean |
isInternal(V v) |
boolean |
isLeaf(V v) |
boolean |
isRoot(V v) |
boolean |
removeChild(V orphan)
removes a node from the tree, causing all descendants of
the removed node also to be removed
|
boolean |
removeVertex(V vertex)
remove the passed node, and all nodes that are descendants of the
passed node.
|
void |
setRoot(V root)
sets the root to the passed value, only if the root is
previously unset
|
String |
toString() |
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, removeEdgeclone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitgetDest, getEndpoints, getInEdges, getOpposite, getOutEdges, getPredecessorCount, getPredecessors, getSource, getSuccessorCount, getSuccessors, inDegree, isDest, isPredecessor, isSource, isSuccessor, outDegreeaddEdge, containsEdge, containsVertex, degree, findEdge, findEdgeSet, getDefaultEdgeType, getEdgeCount, getEdgeCount, getEdges, getEdges, getEdgeType, getIncidentEdges, getIncidentVertices, getNeighborCount, getNeighbors, getVertexCount, getVertices, isIncident, isNeighbor, removeEdgepublic DelegateTree()
public DelegateTree(com.google.common.base.Supplier<DirectedGraph<V,E>> graphFactory)
graphFactory - must create a DirectedGraph to use as a delegatepublic DelegateTree(DirectedGraph<V,E> graph)
DelegateTree which delegates to graph.
Assumes that graph is already a tree; if it's not, future behavior
of this instance is undefined.graph - the graph to which this instance will delegate operations.public static final <V,E> com.google.common.base.Supplier<Tree<V,E>> getFactory()
V - the vertex type for the graph SupplierE - the edge type for the graph SupplierSupplier that creates an instance of this graph type.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.DIRECTEDGraph.addEdge(java.lang.Object, java.lang.Object, java.lang.Object, edu.uci.ics.jung.graph.util.EdgeType)public boolean addEdge(E e, V v1, V v2)
addEdge in interface Graph<V,E>addEdge in class GraphDecorator<V,E>e - a unique edge to addv1 - the parent nodev2 - the child nodeGraph.addEdge(java.lang.Object, java.lang.Object, java.lang.Object)public boolean addVertex(V vertex)
addVertex in interface Hypergraph<V,E>addVertex in class GraphDecorator<V,E>vertex - the tree root to setUnsupportedOperationException - if the root was previously setHypergraph.addVertex(java.lang.Object)public boolean removeVertex(V vertex)
removeVertex in interface Hypergraph<V,E>removeVertex in class GraphDecorator<V,E>vertex - the vertex to removetrue iff the tree was modifiedHypergraph.removeVertex(java.lang.Object)public boolean addChild(E edge, V parent, V child, EdgeType edgeType)
edge - the unique edge to connect the parent and child nodesparent - the existing parent to attach the child tochild - the new child to add to the tree as a child of parentedgeType - must be EdgeType.DIRECTED or the underlying graph may throw an exceptionpublic boolean addChild(E edge, V parent, V child)
edge - the unique edge to connect the parent and child nodesparent - the existing parent to attach the child tochild - the new child to add to the tree as a child of parentpublic int getChildCount(V parent)
getChildCount in interface Forest<V,E>public Collection<V> getChildren(V parent)
getChildren in interface Forest<V,E>public List<V> getPath(V vertex)
vertex, including all intermediate
nodes.vertex - the last node in the path from the rootpublic V getRoot()
public void setRoot(V root)
root - the initial tree rootpublic boolean removeChild(V orphan)
orphan - the node to removepublic int getDepth(V v)
public int getHeight()
public boolean isInternal(V v)
v - the vertex to testtrue if v is neither
a leaf nor the root of this treepublic boolean isLeaf(V v)
v - the vertex to testtrue if v has no childrenpublic boolean isRoot(V v)
v - the vertex to testtrue if v has no parentpublic int getIncidentCount(E edge)
getIncidentCount in interface Hypergraph<V,E>getIncidentCount in class GraphDecorator<V,E>public boolean addEdge(E edge, Collection<? extends V> vertices)
addEdge in interface Hypergraph<V,E>addEdge in class GraphDecorator<V,E>public Collection<E> getChildEdges(V vertex)
getChildEdges in interface Forest<V,E>Copyright © 2016. All rights reserved.