Closeness centrality of a vertex v in a graph G V E is given
Solution
#include <iostream>
#include <cstdlib>
using namespace std;
/*
* Adjacency List Node
*/
struct AdjListNode
{
int dest;
struct AdjListNode* next;
};
/*
* Adjacency List
*/
struct AdjList
{
struct AdjListNode *head;
};
/*
* Class Graph
*/
class Graph
{
private:
int V;
struct AdjList* array;
public:
Graph(int V)
{
this->V = V;
array = new AdjList [V];
for (int i = 0; i < V; ++i)
array[i].head = NULL;
}
/*
* Creating New Adjacency List Node
*/
AdjListNode* newAdjListNode(int dest)
{
AdjListNode* newNode = new AdjListNode;
newNode->dest = dest;
newNode->next = NULL;
return newNode;
}
/*
* Adding Edge to Graph
*/
void addEdge(int src, int dest)
{
AdjListNode* newNode = newAdjListNode(dest);
newNode->next = array[src].head;
array[src].head = newNode;
newNode = newAdjListNode(src);
newNode->next = array[dest].head;
array[dest].head = newNode;
}
/*
* Print the graph
*/
void printGraph()
{
int v;
for (v = 0; v < V; ++v)
{
AdjListNode* pCrawl = array[v].head;
cout<<\"\ Adjacency list of vertex \"<<v<<\"\ head \";
while (pCrawl)
{
cout<<\"-> \"<<pCrawl->dest;
pCrawl = pCrawl->next;
}
cout<<endl;
}
}
};
/*
* Main
*/
int main()
{
Graph gh(5);
gh.addEdge(0, 1);
gh.addEdge(0, 4);
gh.addEdge(1, 2);
gh.addEdge(1, 3);
gh.addEdge(1, 4);
gh.addEdge(2, 3);
gh.addEdge(3, 4);
// print the adjacency list representation of the above graph
gh.printGraph();
return 0;
}

