-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmain.cpp
More file actions
70 lines (48 loc) · 1.7 KB
/
Copy pathmain.cpp
File metadata and controls
70 lines (48 loc) · 1.7 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
#include <vector>
#include <string>
#include <limits.h>
#include "graph.h"
#define F 9999
using namespace std;
void Dijkstra(GraphAdjMatrix<string, string>* visGraph, Graph fGraph, int start) {
fGraph.dijkstraAlgorithm(start);
int* dist = fGraph.getDistD();
string vertex;
for(int i = 0; i < F - 1; i++) {
vertex = fGraph.getFencer(i)->name + "\n" + fGraph.getFencer(i)->club;
if(dist[i] != 0 && dist[i] != INT_MAX) {
visGraph->getVisualizer(vertex)->setColor("red");
}
}
}
void BellmanFord(GraphAdjMatrix<string, string>* visGraph, Graph fGraph, int start) {
fGraph.bfAlgorithm(start);
int* dist = fGraph.getDistBF();
string vertex;
for(int i = 0; i < F - 1; i++) {
vertex = fGraph.getFencer(i)->name + "\n" + fGraph.getFencer(i)->club;
if(dist[i] != 0 && dist[i] != INT_MAX) {
visGraph->getVisualizer(vertex)->setColor("red");
}
}
}
void Visualize(Graph* fGraph) {
Bridges bridges(0, "armanchowdhury", "1068005597362");
bridges.setTitle("Sample graph visualization");
GraphAdjMatrix<string, string> visGraph;
fGraph->copyToBridges(&visGraph);
bridges.setDataStructure(visGraph);
for(int i = 0; i < 100; i++) {
BellmanFord(&visGraph, *fGraph, i);
}
bridges.visualize();
}
int main() {
Graph* fGraph = new Graph();
// pass csv file path as string
fGraph->createMap("C:\\Users\\armma\\CLionProjects\\DSA\\COP3530-ProgrammingQuiz4-Bridges\\dataset.csv", false);
// generates random edges between vertices, first param is # edges, second param is the seed for random generation
fGraph->generateEdges(300, 1);
Visualize(fGraph);
return 0;
}