I want C code for the following task in simple C language Th
I want C++ code for the following task in simple C++ language. Thanks.
Implement the bucket algorithm using your implementation of the adjacency matrix. You will read off the Graph from a text file holding vertex associations in every line of the graph and populate or fill up your adjacency matrix before running the bucket algorithm on the graph. File contents can be like: (every line shows the the vertices with which edges are shared) a has-edge g h d c e b has-edge c f g e c has-edge e f d has-edge g c e e has-edge a b c f has-edge d e g has-edge b c a h has-edge d f e First you will read this file and populate your adjacency matrix then run bucket algorithm over it.
Solution
#include<stdio.h>
#include<stlib.h>
struct AdjListNode
{
int dest;
struct AdjListNode* next;
}
struct AdjList
{
struct AdjListNode *head;
}
struct Graph
{
int V;
struct AdjList* array;
};
struct AdjListNode* newAdjListNode(int dest)
{
struct AdjListNode* newNode = (struct AdjListNode*)malloc(sizeof(struct AdjListNode));
newNode->dest = dest;
newNode->next = NULL;
return newNode;
}
struct Graph* createGraph(int V)
{
sturct Graph* graph = (struct Graph*) malloc(sizeof(struct Graph));
graph->V=V;
graph->array = (struct AdjList*)malloc(V* sizeof(struct AdjList));
int i;
for(i=0; i<V; ++i)
graph->array[i]head = NULL;
return graph;
}
void addEdge(struct Graph* graph,int src,int dest)
{
struct AdjListNode* newNode = newAdjListNode(dest);
newNode->next = graph->array[src].head;
graph->array[src].head = newNode;
newNode = newAdjListNode(src);
newNode->next = graph->array[dest].head;
graph->array[dest].head = newNode;
}
void printGraph(struct Graph* graph)
{
int v;
for(v=0; v<graph->V; ++v)
{
struct AdjListNode* pCrawl = graph->array[v].head;
printf(\"\ Adjacency list of vertex %d\ head\", v);
while(pCrawl)
{
printf(\"->%d\", pCrawl->dest);
pCrawl = pCrawl->next;
}
printf(\"\ \");
}
}
int main()
{
int V=5;
struct Graph* graph = createGraph(V);
addEdge(graph, 0. 1);
addEdge(graph, 0, 4);
addEdge(graph, 1, 2);
addEdge(graph, 1, 3);
addEdge(graph, 1, 4);
addEdge(graph, 2, 3);
addEdge(graph, 3, 4);
printGraph(graph);
retrun 0;
}


