Skip to content

Commit bd910ad

Browse files
committed
Input/Output Handling.
1 parent d9a1055 commit bd910ad

File tree

4 files changed

+20
-26
lines changed

4 files changed

+20
-26
lines changed

Graph.cpp

Lines changed: 8 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,12 @@
99

1010
#define INF 99999
1111

12-
Graph::Graph(int numberOfVertices) {
12+
Graph::Graph(int numberOfVertices,AdjacencyMatrix adjacencyMatrix) {
1313
this->numberOfVertices = numberOfVertices;
14+
this->adjacencyMatrix = adjacencyMatrix;
1415
this->numberOfEdges=0;
16+
createNodes(numberOfVertices);
17+
createEdges(adjacencyMatrix);
1518
}
1619

1720

@@ -98,11 +101,9 @@ vector<GraphEdge> *Graph::dijkstraAlgorithm(GraphNode *node) {
98101
}
99102
}
100103
for (int j = 0; j < numberOfVertices; ++j) {
101-
102104
cout<<"Path to Node "<<j<<" is ";
103105
printParents(j,node->getNodeIndex(),parentVertices);
104106
cout<<endl;
105-
106107
}
107108

108109
return edgesShortestPath;
@@ -123,21 +124,17 @@ int Graph::getNumberOfVertices() {
123124
return numberOfVertices;
124125
}
125126

126-
vector<GraphNode *> * Graph::createNodes(int numberOfVertices) {
127-
vector<GraphNode*>* vector1=new vector<GraphNode*>();
127+
void Graph::createNodes(int numberOfVertices) {
128128
for (int i = 0; i < numberOfVertices; ++i) {
129-
vector1->push_back(this->addNode(i));
129+
addNode(i);
130130
}
131-
return vector1;
132-
133131
}
134132

135-
void Graph::createEdges(vector<GraphNode *> *nodes,vector<vector<int>> matrix ) {
136-
133+
void Graph::createEdges(vector<vector<int>> matrix ) {
137134
for (int i = 0; i < numberOfVertices; ++i) {
138135
for (int j = 0; j < numberOfVertices; ++j) {
139136
if (matrix[i][j]!=0)
140-
this->addEdge(nodes->at((unsigned long) i), nodes->at((unsigned long) j), matrix[i][j]);
137+
this->addEdge(vertices.at((unsigned long) i), vertices.at((unsigned long) j), matrix[i][j]);
141138
}
142139

143140
}

Graph.h

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,11 @@
1212

1313
using namespace std;
1414
typedef unordered_map<GraphNode* ,vector<GraphEdge*>> AdjacencyList;
15+
typedef vector<vector<int>> AdjacencyMatrix;
1516
class Graph {
1617

1718
AdjacencyList adjacencyList;
19+
AdjacencyMatrix adjacencyMatrix;
1820
int numberOfVertices;
1921
int numberOfEdges;
2022
vector<GraphEdge*> edges;
@@ -25,10 +27,11 @@ class Graph {
2527

2628
public:
2729
int getNumberOfVertices() ;
28-
vector<GraphNode*>* createNodes(int numberOfVertices);
2930

30-
Graph(int numberOfVertices);
31-
void createEdges(vector<GraphNode*>* nodes,vector<vector<int>> matrix);
31+
32+
Graph(int numberOfVertices,AdjacencyMatrix adjacencyMatrix);
33+
void createNodes(int numberOfVertices);
34+
void createEdges(vector<vector<int>> matrix);
3235

3336
GraphNode* addNode(int index);
3437
GraphEdge addEdge(GraphNode *node1,GraphNode *node2,int weight);

GraphNode.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,3 +20,5 @@ int GraphNode::getNodeIndex() {
2020
}
2121

2222

23+
24+

main.cpp

Lines changed: 4 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -3,26 +3,18 @@
33
#define randomVertix 0
44
using namespace std;
55
int main() {
6-
int numberOfVertices=2;
7-
cout<<"enter number of vertices"<<endl;
6+
int numberOfVertices;
7+
cout<<"Enter number of vertices : ";
88
cin>>numberOfVertices;
9-
10-
Graph graph(numberOfVertices);
11-
129
cout<<"enter the adjacency matrix"<<endl;
13-
14-
vector<vector<int>> matrix((unsigned long) numberOfVertices);
10+
vector<vector<int>> matrix((unsigned long) numberOfVertices);
1511
int x;
1612
for (int i = 0; i < numberOfVertices; ++i)
1713
for (int j = 0; j < numberOfVertices; ++j){
1814
cin>>x;
1915
matrix.at((unsigned long) i).push_back(x);
2016
}
21-
22-
23-
graph.createEdges(graph.createNodes(numberOfVertices),matrix);
24-
25-
17+
Graph graph(numberOfVertices,matrix);
2618
vector<GraphEdge>*vector1=graph.primAlgorithm(graph.getVertices().at(randomVertix));
2719

2820
int sum=0;

0 commit comments

Comments
 (0)