# source:lemon-0.x/src/work/johanna/kruskal_test.cc@191:efea403c9595

Last change on this file since 191:efea403c9595 was 150:4b5210aa0239, checked in by beckerjc, 21 years ago

Unió-HolVan? struktúra,
Kruskal algoritmus,
hozzávaló kis tesztfájl és Makefile.

File size: 1.2 KB
Line
1#include <string>
2#include <iostream>
3#include <map>
4
5#include <kruskal.h>
6#include <list_graph.hh>
7
8
9using namespace std;
10using namespace hugo;
11
12class string_int_map : public map<string,int> {
13public:
14  int get(const string &s) {
15    // Bocs, ez igy gaaaany, de nem volt kedvem utananezni, hogy
16    // hogy is mukodik ez a map :)
17    if( count(s) == 0 ) {
18      operator[](s) = -1;
19    }
20    return operator[](s);
21  }
22  void set(const string &s, int i) {
23      operator[](s) = i;
24  }
25};
26
27
28int main() {
29
30  typedef ListGraph::NodeIt NodeIt;
31  typedef ListGraph::EdgeIt EdgeIt;
32  typedef ListGraph::EachNodeIt EachNodeIt;
33  typedef ListGraph::EachEdgeIt EachEdgeIt;
34
35  ListGraph G;
36
37  NodeIt s=G.addNode();
38  NodeIt v1=G.addNode();
39  NodeIt v2=G.addNode();
40  NodeIt v3=G.addNode();
41  NodeIt v4=G.addNode();
42  NodeIt t=G.addNode();
43
44  G.addEdge(s, v1);
45  G.addEdge(s, v2);
46  G.addEdge(v1, v2);
47  G.addEdge(v2, v1);
48  G.addEdge(v1, v3);
49  G.addEdge(v3, v2);
50  G.addEdge(v2, v4);
51  G.addEdge(v4, v3);
52  G.addEdge(v3, t);
53  G.addEdge(v4, t);
54
55  ListGraph::EdgeMap<double> edge_cost_map(G, 2);
56  ListGraph::EdgeMap<bool> tree_map(G);
57
58  double k0lts = MinCostTreeKruskal(G, edge_cost_map, tree_map);
59
60  cout << k0lts << endl;
61
62  return 0;
63}
Note: See TracBrowser for help on using the repository browser.