You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by si...@apache.org on 2011/06/28 13:47:23 UTC

svn commit: r1140542 - in /commons/sandbox/graph/trunk/src/main/java/org/apache/commons/graph: DirectedGraph.java Graph.java model/DirectedMutableGraph.java model/UndirectedMutableGraph.java

Author: simonetripodi
Date: Tue Jun 28 11:47:22 2011
New Revision: 1140542

URL: http://svn.apache.org/viewvc?rev=1140542&view=rev
Log:
added missing Vertex (in|out)degree support

Modified:
    commons/sandbox/graph/trunk/src/main/java/org/apache/commons/graph/DirectedGraph.java
    commons/sandbox/graph/trunk/src/main/java/org/apache/commons/graph/Graph.java
    commons/sandbox/graph/trunk/src/main/java/org/apache/commons/graph/model/DirectedMutableGraph.java
    commons/sandbox/graph/trunk/src/main/java/org/apache/commons/graph/model/UndirectedMutableGraph.java

Modified: commons/sandbox/graph/trunk/src/main/java/org/apache/commons/graph/DirectedGraph.java
URL: http://svn.apache.org/viewvc/commons/sandbox/graph/trunk/src/main/java/org/apache/commons/graph/DirectedGraph.java?rev=1140542&r1=1140541&r2=1140542&view=diff
==============================================================================
--- commons/sandbox/graph/trunk/src/main/java/org/apache/commons/graph/DirectedGraph.java (original)
+++ commons/sandbox/graph/trunk/src/main/java/org/apache/commons/graph/DirectedGraph.java Tue Jun 28 11:47:22 2011
@@ -34,6 +34,14 @@ public interface DirectedGraph<V extends
 {
 
     /**
+     * For a {@link Vertex}, the number of head endpoints adjacent to a node is called the indegree.
+     *
+     * @param v the {@link Vertex} which indegree has to be returned.
+     * @return the number of head endpoints adjacent to a {@link Vertex}.
+     */
+    int getInDegree( V v );
+
+    /**
      * Returns the set of {@link Edge}s which are inbound to the {@link Vertex}.
      *
      * @param v the {@link Vertex} which inbound {@link Vertex}s have to be returned
@@ -42,6 +50,14 @@ public interface DirectedGraph<V extends
     Iterable<V> getInbound( V v );
 
     /**
+     * For a {@link Vertex}, the number of tail endpoints adjacent to a node is called the outdegree.
+     *
+     * @param v the {@link Vertex} which indegree has to be returned.
+     * @return the number of head endpoints adjacent to a {@link Vertex}.
+     */
+    int getOutDegree( V v );
+
+    /**
      * Returns the set of {@link Vertex}s which lead away from the {@link Vertex}.
      *
      * @param v the {@link Vertex} which outbound {@link Vertex}s have to be returned

Modified: commons/sandbox/graph/trunk/src/main/java/org/apache/commons/graph/Graph.java
URL: http://svn.apache.org/viewvc/commons/sandbox/graph/trunk/src/main/java/org/apache/commons/graph/Graph.java?rev=1140542&r1=1140541&r2=1140542&view=diff
==============================================================================
--- commons/sandbox/graph/trunk/src/main/java/org/apache/commons/graph/Graph.java (original)
+++ commons/sandbox/graph/trunk/src/main/java/org/apache/commons/graph/Graph.java Tue Jun 28 11:47:22 2011
@@ -59,6 +59,15 @@ public interface Graph<V extends Vertex,
     int getSize();
 
     /**
+     * The degree (or valency) of a {@link Vertex} of a {@link Graph}
+     * is the number of {@link Edge}s incident to the {@link Vertex}.
+     *
+     * @param v the {@link Vertex} which degree has to be returned.
+     * @return the number of {@link Edge}s incident to the {@link Vertex}.
+     */
+    int getDegree( V v );
+
+    /**
      * Returns all vertices which touch this vertex.
      * 
      * @return all vertices which touch this vertex.

Modified: commons/sandbox/graph/trunk/src/main/java/org/apache/commons/graph/model/DirectedMutableGraph.java
URL: http://svn.apache.org/viewvc/commons/sandbox/graph/trunk/src/main/java/org/apache/commons/graph/model/DirectedMutableGraph.java?rev=1140542&r1=1140541&r2=1140542&view=diff
==============================================================================
--- commons/sandbox/graph/trunk/src/main/java/org/apache/commons/graph/model/DirectedMutableGraph.java (original)
+++ commons/sandbox/graph/trunk/src/main/java/org/apache/commons/graph/model/DirectedMutableGraph.java Tue Jun 28 11:47:22 2011
@@ -46,7 +46,23 @@ public class DirectedMutableGraph<V exte
     /**
      * {@inheritDoc}
      */
-    public Iterable<V> getInbound( V v )
+    public final int getDegree( V v )
+    {
+        return getInDegree( v ) + getOutDegree( v );
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    public final int getInDegree( V v )
+    {
+        return inbound.get( v ).size();
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    public final Iterable<V> getInbound( V v )
     {
         return inbound.get( v );
     }
@@ -54,7 +70,15 @@ public class DirectedMutableGraph<V exte
     /**
      * {@inheritDoc}
      */
-    public Iterable<V> getOutbound( V v )
+    public final int getOutDegree( V v )
+    {
+        return outbound.get( v ).size();
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    public final Iterable<V> getOutbound( V v )
     {
         return outbound.get( v );
     }

Modified: commons/sandbox/graph/trunk/src/main/java/org/apache/commons/graph/model/UndirectedMutableGraph.java
URL: http://svn.apache.org/viewvc/commons/sandbox/graph/trunk/src/main/java/org/apache/commons/graph/model/UndirectedMutableGraph.java?rev=1140542&r1=1140541&r2=1140542&view=diff
==============================================================================
--- commons/sandbox/graph/trunk/src/main/java/org/apache/commons/graph/model/UndirectedMutableGraph.java (original)
+++ commons/sandbox/graph/trunk/src/main/java/org/apache/commons/graph/model/UndirectedMutableGraph.java Tue Jun 28 11:47:22 2011
@@ -37,6 +37,14 @@ public class UndirectedMutableGraph<V ex
     /**
      * {@inheritDoc}
      */
+    public final int getDegree( V v )
+    {
+        return getAdjacencyList().get( v ).size() * 2;
+    }
+
+    /**
+     * {@inheritDoc}
+     */
     @Override
     protected void decorateAddVertex( V v )
     {