// GraphTea Project: http://github.com/graphtheorysoftware/GraphTea // Copyright (C) 2012 Graph Theory Software Foundation: http://GraphTheorySoftware.com // Copyright (C) 2008 Mathematical Science Department of Sharif University of Technology // Distributed under the terms of the GNU General Public License (GPL): http://www.gnu.org/licenses/ package graphtea.extensions.reports.basicreports; import graphtea.graph.graph.GraphModel; import graphtea.graph.graph.Vertex; import graphtea.platform.parameter.Parameter; import graphtea.platform.parameter.Parametrizable; import graphtea.plugins.reports.extension.GraphReportExtension; /** * @author azin azadi */ public class NumOfVerticesWithDegK implements GraphReportExtension, Parametrizable { @Parameter(name = "K") public static Integer k = 1; public String getName() { return "Number of Vertices with Deg k"; } public String getDescription() { return "Number of vertices in the Graph which degrees are k"; } public Object calculate(GraphModel g) { return numOfVerticesWithDegK(g,k); } public String checkParameters() { return (k < 0 ? "K must be positive" : null); } public static int numOfVerticesWithDegK(GraphModel g, int k) { int ret = 0; int t = (g.isDirected() ? 1 : 2); for (Vertex v : g) { if ((g.getInDegree(v) + g.getOutDegree(v)) / t == k) ret++; } return ret; } @Override public String getCategory() { // TODO Auto-generated method stub return "General"; } }