#include<iostream>
using namespace std;
class Graph
{
private:
int **adjacencyMatrix;
int vertexCount;
public:
Graph(int vertexCount);
~Graph(){
}
void addEdge(int i, int j);
void removeEdge(int i, int j);
bool isEdge(int i,int j);
void display();
};
Graph::Graph(int vertexCount){
this->vertexCount=vertexCount;
adjacencyMatrix = new int*[vertexCount];
for(int i=0;i<vertexCount;i ++){
adjacencyMatrix[i]=new int[vertexCount];
for (int j = 0; j < vertexCount; j++){
adjacencyMatrix[i][j] = 0;
}
}
}
void Graph::addEdge(int i,int j){
if(i>=0&&i<vertexCount&&j>=0&&j<vertexCount){
adjacencyMatrix[i][j]=1;
adjacencyMatrix[j][i]=1;
}
}
void Graph::removeEdge(int i,int j){
if(i>=0&&i<vertexCount&&j>=0&&j<vertexCount){
adjacencyMatrix[i][j]=0;
adjacencyMatrix[j][i]=0;
}
}
bool Graph::isEdge(int i,int j){
}
void Graph::display(){
for(int u=0;u<vertexCount;u++){
cout << "\nnode[" << (char) (u+65) << "] -> ";
for(int v=0; v<vertexCount; ++v) {
cout << " " << adjacencyMatrix[u][v];
}
}
cout << "\n\n";
}
int main(){
Graph g(5);
g.addEdge(3,4);
g.addEdge(2,2);
g.addEdge(1,0);
g.addEdge(2,3);
g.display();
return 0;
}