00001 typedef enum
00002 { FALSE = 0,
00003 TRUE = 1
00004 } BOOL;
00005
00006 typedef struct Node
00007 { long id;
00008 struct Edge *first_edge;
00009
00010 struct Edge *scan_ptr;
00011
00012
00013 struct Node *parent;
00014 double mincap;
00015
00016
00017 long dist;
00018 double excess;
00019 struct Node *bfs_link;
00020 struct Node *stack_link;
00021 BOOL alive;
00022 BOOL unmarked;
00023 } node;
00024
00025 typedef struct Edge
00026 { node *adjac;
00027 struct Edge *next;
00028
00029 struct Edge *back;
00030 double cap;
00031 double rcap;
00032 } edge;
00033
00034 typedef struct Graph
00035 { long n_nodes;
00036 node *nodes;
00037 long n_edges;
00038 long n_edges0;
00039 edge *edges;
00040 } graph;
00041
00042 #define NILN (node *) 0
00043 #define NILE (edge *) 0
00044 #define EPS 1.0E-10