// This code is from "Algorithms in Java, Third Edition," // by Robert Sedgewick, Addison-Wesley, 2003. // Program 22.2 - handles an edge and its inverse class Edge { private int pv, pw, pcap, pflow; public static int M=0; // See Sedgewick Edge(int v, int w, int cap) { pv = v; pw = w; pcap = cap; pflow = 0; // See Sedgewick if (cap>M) M=cap; } int v() { return pv; } int w() { return pw; } int cap() { return pcap; } int flow() { return pflow; } boolean from (int v) { return pv == v; } int other(int v) { return from(v) ? pw : pv; } int capRto(int v) { return from(v) ? pflow : pcap - pflow; } void addflowRto(int v, int d) { pflow += from(v) ? -d : d; } }