src/work/marci/oldies/dimacs.hh
changeset 1365 c280de819a73
parent 1364 ee5959aa4410
child 1366 d00b85f8be45
     1.1 --- a/src/work/marci/oldies/dimacs.hh	Sun Apr 17 18:57:22 2005 +0000
     1.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.3 @@ -1,61 +0,0 @@
     1.4 -#ifndef DIMACS_HH
     1.5 -#define DIMACS_HH
     1.6 -
     1.7 -#include <iostream>
     1.8 -#include <string>
     1.9 -#include <vector>
    1.10 -
    1.11 -namespace hugo {
    1.12 -
    1.13 -  template<typename Graph, typename CapacityMap>
    1.14 -  void readDimacsMaxFlow(std::istream& is, Graph &G, typename Graph::NodeIt &s, typename Graph::NodeIt &t, CapacityMap& capacity) {
    1.15 -    G.clear();
    1.16 -    int cap;
    1.17 -    char d;
    1.18 -    std::string problem;
    1.19 -    char c;
    1.20 -    int i, j;
    1.21 -    std::string str;
    1.22 -    int n, m; 
    1.23 -    std::vector<typename Graph::NodeIt> nodes;
    1.24 -    while (is>>c) {
    1.25 -      switch (c) {
    1.26 -      case 'c': //comment
    1.27 -	getline(is, str);
    1.28 -	break;
    1.29 -      case 't': //type
    1.30 -	getline(is, str);
    1.31 -	break;
    1.32 -      case 'p': //problem definition
    1.33 -	is >> problem >> n >> m;
    1.34 -	getline(is, str);
    1.35 -	nodes.resize(n+1);
    1.36 -	for (int k=1; k<=n; ++k) nodes[k]=G.addNode();
    1.37 -	break;
    1.38 -      case 'n': //node definition
    1.39 -	if (problem=="sp") { //shortest path problem
    1.40 -	  is >> i;
    1.41 -	  getline(is, str);
    1.42 -	  s=nodes[i];
    1.43 -	}
    1.44 -	if (problem=="max") { //max flow problem
    1.45 -	  is >> i >> d;
    1.46 -	  getline(is, str);
    1.47 -	  if (d=='s') s=nodes[i];
    1.48 -	  if (d=='t') t=nodes[i];
    1.49 -	}
    1.50 -	break;
    1.51 -      case 'a':
    1.52 -	is >> i >> j >> cap;
    1.53 -	getline(is, str);
    1.54 -	typename Graph::EdgeIt e=G.addEdge(nodes[i], nodes[j]);
    1.55 -	capacity.update();
    1.56 -	capacity.set(e, cap);
    1.57 -	break;
    1.58 -      }
    1.59 -    }
    1.60 -  }
    1.61 -  
    1.62 -} //namespace hugo
    1.63 -
    1.64 -#endif //DIMACS_HH