Ford-Fulkerson算法 java实现

本文介绍了Ford-Fulkerson算法的Java实现,重点在于如何利用数组栈进行深度遍历。该算法通过寻找从源点s到汇点t的增广路径,逐步增加流量,直到无法找到增广路径为止。在实现过程中,需要注意对残量网络Gf中的边进行流量更新。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

/*
for each edge(u,v) 属于 G,E
(u,v).f = 0;
while there exists a path p from s to t in the residual network Gf
cf(p) = min{cf(u,v):(u,v) is in p};
for each edge(u,v) in p
if(u,v)属于E
(u,v).f += cf(p)
else
(u,v).f -= cf(p);
*/

用数组实现栈来进行深度遍历的地方(dfs函数)需要尤其注意。

import java.util.*;
class Ford_Fulkerson
{
	static int[][] res;	//残留矩阵
	static int[] pre;
	static boolean[] used;
	static int[] stack; //用于dfs,底部为0,顶部为top
	static int ver;
	static int edge;

	static int ford_Fulkerson(int s,int t){
		//re
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值