JAVA算法:计算图中顶点的依赖和
给出了一个具有n个节点的有向连通图。如果从U到V有一个边,那么U依赖于V。
我们的任务是找出每个节点的依赖项之和。
例如下图中:
对于节点A,从A出发的边有两条,A到C,和A到D;则根据题目描述的定义,A依赖于C和D,则依赖项为2;
对于节点B,从B出发的边有一条,B到C,则B依赖于C,依赖项为1;
对于节点C,没有从C出发的边,则依赖项为0;
对于节点D,从D出发的边有一条,D到C,则D依赖于C,依赖项为1;
上图中所有依赖项之和为:2+1+0+1 = 4
算法设计
package com.bean.algorithm.graph;
import java.util.Vector;
public class SumofDependencies {
static void addEdge(Vector<Integer> adj[], int u, int v) {
adj[u].addElement((v));
}
static int findSum(Vector<Integer> adj[], int V) {
int sum = 0;
for (int u = 0; u < V; u++)
sum += adj[u].size();
return sum;
}
public static void main(String[] args) {
int V = 4;
Vector<Integer> adj[] = new Vector[V];
for (int