发布网友
共1个回答
热心网友
用gephi输入一个邻接矩阵画出拓扑图方法如下:
//Ford-Fulkerson //邻接矩阵BFS #include<stdio.h> #include<string.h> #include<algorithm> using namespace std; #define MAXN 205 #define inf 2100000000 int c[MAXN][MAXN]; int pass[MAXN]; int bfs_max_flow(int n,int s,int t) { int pre[MAXN],low[MAXN],head,tail,que[1000],i,maxflow=0; while (1) { memset(pre,-1,sizeof(pre)); head=tail=0; low[s]=inf;que[tail++]=s; pre[s]=0; while (head<tail) { int x=que[head++]; for (i=1;i<=n;++i) if ((c[x][i])&&(pre[i]==-1)) { que[tail++]=i; low[i]=low[x]<c[x][i]?low[x]:c[x][i]; pre[i]=x; } if (pre[t]!=-1) { x=t; while (x!=s) { c[x][pre[x]]+=low[t]; c[pre[x]][x]-=low[t]; x=pre[x]; } break; } } if (pre[t]!=-1) maxflow+=low[t]; else return maxflow; } } int main() { int n,m,i,a,b,d; while (scanf("%d%d",&n,&m)!=EOF) { memset(c,0,sizeof(c)); for (i=1;i<=n;++i) { scanf("%d%d%d",&a,&b,&d); c[a][b]+=d; } printf("%d/n",bfs_max_flow(m,1,m)); } } //Ford-Fulkerson //邻接矩阵DFS #include<stdio.h> #include<string.h> #include<algorithm> using namespace std; #define MAXN 205 #define inf 2100000000 int c[MAXN][MAXN]; int pass[MAXN]; int dfs(int n,int s,int t,int low) { int i,flow; if (s==t) return low; if (pass[s]) return 0; pass[s]=1; for (i=1;i<=n;++i) { if ((c[s][i])&&(flow=dfs(n,i,t,low<c[s][i]?low:c[s][i]))) { c[s][i]-=flow; c[i][s]+=flow; return flow; } }return 0;
Gephi是一款开源免费跨平台基于JVM的复杂网络分析软件, 其主要用于各种网络和复杂系统,动态和分层图的交互可视化与探测开源工具。可用作:探索性数据分析,链接分析,社交网络分析,生物网络分析等。