Add graph references
This commit is contained in:
@@ -0,0 +1,64 @@
|
||||
// vim:fileencoding=utf-8:foldmethod=marker
|
||||
|
||||
// Adjacency Matrix representation in C++
|
||||
|
||||
#include <iostream>
|
||||
using namespace std;
|
||||
|
||||
class Graph {
|
||||
private:
|
||||
bool** adjMatrix;
|
||||
int numVertices;
|
||||
|
||||
public:
|
||||
// Initialize the matrix to zero
|
||||
Graph(int numVertices) {
|
||||
this->numVertices = numVertices;
|
||||
adjMatrix = new bool*[numVertices];
|
||||
for (int i = 0; i < numVertices; i++) {
|
||||
adjMatrix[i] = new bool[numVertices];
|
||||
for (int j = 0; j < numVertices; j++)
|
||||
adjMatrix[i][j] = false;
|
||||
}
|
||||
}
|
||||
|
||||
// Add edges
|
||||
void addEdge(int i, int j) {
|
||||
adjMatrix[i][j] = true;
|
||||
adjMatrix[j][i] = true;
|
||||
}
|
||||
|
||||
// Remove edges
|
||||
void removeEdge(int i, int j) {
|
||||
adjMatrix[i][j] = false;
|
||||
adjMatrix[j][i] = false;
|
||||
}
|
||||
|
||||
// Print the martix
|
||||
void toString() {
|
||||
for (int i = 0; i < numVertices; i++) {
|
||||
cout << i << " : ";
|
||||
for (int j = 0; j < numVertices; j++)
|
||||
cout << adjMatrix[i][j] << " ";
|
||||
cout << "\n";
|
||||
}
|
||||
}
|
||||
|
||||
~Graph() {
|
||||
for (int i = 0; i < numVertices; i++)
|
||||
delete[] adjMatrix[i];
|
||||
delete[] adjMatrix;
|
||||
}
|
||||
};
|
||||
|
||||
int main() {
|
||||
Graph g(4);
|
||||
|
||||
g.addEdge(0, 1);
|
||||
g.addEdge(0, 2);
|
||||
g.addEdge(1, 2);
|
||||
g.addEdge(2, 0);
|
||||
g.addEdge(2, 3);
|
||||
|
||||
g.toString();
|
||||
}
|
||||
Reference in New Issue
Block a user