jacint@173
|
1 |
#include <iostream>
|
jacint@173
|
2 |
#include <fstream>
|
jacint@173
|
3 |
|
jacint@220
|
4 |
#include <smart_graph.h>
|
jacint@211
|
5 |
#include <list_graph.h>
|
jacint@211
|
6 |
#include <dimacs.h>
|
jacint@173
|
7 |
#include <prim.h>
|
jacint@173
|
8 |
#include <time_measure.h>
|
jacint@173
|
9 |
|
klao@258
|
10 |
#include <bin_heap.h>
|
jacint@173
|
11 |
#include <fib_heap.h>
|
jacint@173
|
12 |
|
alpar@921
|
13 |
using namespace lemon;
|
jacint@173
|
14 |
|
jacint@173
|
15 |
int main(int, char **) {
|
jacint@220
|
16 |
typedef SmartGraph::Node Node;
|
jacint@173
|
17 |
|
jacint@220
|
18 |
SmartGraph G;
|
jacint@211
|
19 |
Node s, t;
|
jacint@220
|
20 |
SmartGraph::EdgeMap<int> cap(G);
|
jacint@173
|
21 |
readDimacsMaxFlow(std::cin, G, s, t, cap);
|
jacint@173
|
22 |
|
jacint@173
|
23 |
std::cout << "prim demo ..." << std::endl;
|
jacint@173
|
24 |
|
jacint@173
|
25 |
double pre_time=currTime();
|
jacint@220
|
26 |
Prim<SmartGraph, int, FibHeap<SmartGraph::Node, int,
|
jacint@220
|
27 |
SmartGraph::NodeMap<int> > > prim_test(G, cap);
|
jacint@173
|
28 |
prim_test.run();
|
jacint@173
|
29 |
double post_time=currTime();
|
jacint@173
|
30 |
|
jacint@173
|
31 |
std::cout << "running time with fib_heap: "
|
jacint@173
|
32 |
<< post_time-pre_time << " sec"<< std::endl;
|
jacint@173
|
33 |
|
jacint@173
|
34 |
pre_time=currTime();
|
jacint@220
|
35 |
Prim<SmartGraph, int, BinHeap<SmartGraph::Node, int,
|
jacint@220
|
36 |
SmartGraph::NodeMap<int> > > prim_test2(G, cap);
|
jacint@173
|
37 |
prim_test2.run();
|
jacint@173
|
38 |
post_time=currTime();
|
jacint@173
|
39 |
|
jacint@173
|
40 |
std::cout << "running time with bin_heap: "
|
jacint@173
|
41 |
<< post_time-pre_time << " sec"<< std::endl;
|
jacint@173
|
42 |
|
jacint@173
|
43 |
std::cout<<"A minimalis feszitofa sulya fib kupaccal: "<< prim_test.weight() <<std::endl;
|
jacint@173
|
44 |
std::cout<<"A minimalis feszitofa sulya bin kupaccal: "<< prim_test2.weight() <<std::endl;
|
jacint@173
|
45 |
if ( prim_test.weight() != prim_test2.weight() )
|
jacint@173
|
46 |
std::cout<<"Nem egyezik meg!"<<std::endl;
|
jacint@173
|
47 |
else std::cout<<"Megegyezik."<<std::endl;
|
jacint@173
|
48 |
|
jacint@173
|
49 |
return 0;
|
jacint@173
|
50 |
}
|