|
||||||||||
| 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.DelegateTree<V,E>
V - the vertex typeE - the edge typepublic class DelegateTree<V,E>
An implementation of Tree that delegates to
a specified instance of DirectedGraph.
| Field Summary | |
|---|---|
protected V |
root
|
protected Map<V,Integer> |
vertex_depths
|
| Fields inherited from class edu.uci.ics.jung.graph.GraphDecorator |
|---|
delegate |
| Constructor Summary | |
|---|---|
DelegateTree()
Creates an instance. |
|
DelegateTree(
create an instance with passed values. |
|
| Method Summary | ||
|---|---|---|
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)
Adds edge to this graph. |
|
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)
Returns the edges connecting vertex to its children
in this tree. |
|
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
|
getFactory()
Returns a Factory that creates an instance of this graph type. |
|
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)
get the single parent node of the passed child |
|
E |
getParentEdge(V vertex)
Returns the edge connecting vertex to its parent in
this tree. |
|
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()
Returns a view of this graph as a collection of Tree instances. |
|
boolean |
isInternal(V v)
Returns true if v is neither
a leaf nor the root of this tree. |
|
boolean |
isLeaf(V v)
Returns true if the passed node has no
children. |
|
boolean |
isRoot(V v)
computes whether the passed node is a root node (has no children) |
|
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()
|
|
| Methods inherited from class edu.uci.ics.jung.graph.GraphDecorator |
|---|
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, removeEdge |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
| Methods inherited from interface edu.uci.ics.jung.graph.Graph |
|---|
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, removeEdge |
| Field Detail |
|---|
protected V root
protected Map<V,Integer> vertex_depths
| Constructor Detail |
|---|
public DelegateTree()
public DelegateTree(graphFactory)
graphFactory - must create a DirectedGraph to use as a delegate| Method Detail |
|---|
public static final <V,E>getFactory()
Factory that creates an instance of this graph type.
V - the vertex type for the graph factoryE - the edge type for the graph factory
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 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 node
Graph.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 set
UnsupportedOperationException - 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 -
true 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 exception
public 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 parent
public int getChildCount(V parent)
getChildCount in interface Forest<V,E>parent - 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<V> getChildren(V parent)
getChildren in interface Forest<V,E>parent - the vertex whose children are to be returned
Collection of children of vertex
in this treeGraph.getSuccessors(Object),
Forest.getChildEdges(Object)public V getParent(V child)
getParent in interface Forest<V,E>vertex in this treeGraph.getPredecessors(Object),
Forest.getParentEdge(Object)public List<V> getPath(V vertex)
vertex, including all intermediate
nodes.
vertex - the last node in the path from the root
public V getRoot()
getRoot in interface Tree<V,E>public void setRoot(V root)
root - the initial tree rootpublic boolean removeChild(V orphan)
orphan - the node to remove
public int getDepth(V v)
getDepth in interface Tree<V,E>v - the node who's depth is computed
Tree.getHeight()public int getHeight()
getHeight in interface Tree<V,E>Tree.getDepth(Object)public boolean isInternal(V v)
true if v is neither
a leaf nor the root of this tree.
true if v is neither
a leaf nor the root of this treepublic boolean isLeaf(V v)
true if the passed node has no
children.
true if the passed node has no
childrenpublic boolean isRoot(V v)
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 String toString()
toString in class Objectpublic Collection<Tree<V,E>> getTrees()
ForestTree instances.
getTrees in interface Forest<V,E>Treespublic 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 | |||||||||