Skip to content

Commit

Permalink
Add File
Browse files Browse the repository at this point in the history
  • Loading branch information
JoyM268 committed Jun 9, 2024
1 parent b209059 commit f8d716e
Showing 1 changed file with 57 additions and 57 deletions.
114 changes: 57 additions & 57 deletions Assignment programs/BFSCyclic.c
Original file line number Diff line number Diff line change
Expand Up @@ -5,94 +5,94 @@
int count = 0, queue[MAX], front = 0, rear = -1;
void insertQueue(int element)
{
queue[++rear] = element;
queue[++rear] = element;
}

void deleteQueue()
{
queue[front++];
if(front > rear)
{
front = 0;
rear = -1;
}
queue[front++];
if(front > rear)
{
front = 0;
rear = -1;
}
}

void readMatrix(int matrix[][MAX], int n)
{
int i, j;
for(i = 0; i < n; i++)
int i, j;
for(i = 0; i < n; i++)
{
for(j = 0; j < n; j++)
{
for(j = 0; j < n; j++)
{
scanf("%d", &matrix[i][j]);
}
scanf("%d", &matrix[i][j]);
}
}
}

void markUnvisited(int visitedNodes[], int nodeCount)
{
int i;
for(i = 0; i < nodeCount; i++)
{
visitedNodes[i] = 0;
}
int i;
for(i = 0; i < nodeCount; i++)
{
visitedNodes[i] = 0;
}
}

int bfs(int v, int graph[][MAX], int visitedNodes[], int nodeCount)
{
insertQueue(v);
while (front <= rear)
insertQueue(v);
while (front <= rear)
{
int frontElement = queue[front], w;
deleteQueue();
if (visitedNodes[frontElement] != 0 || graph[frontElement][frontElement] == 1)
{
int frontElement = queue[front], w;
deleteQueue();
if (visitedNodes[frontElement] != 0 || graph[frontElement][frontElement] == 1)
{
return 1;
}
count++;
visitedNodes[frontElement] = count;
for (w = 0; w < nodeCount; w++)
return 1;
}
count++;
visitedNodes[frontElement] = count;
for (w = 0; w < nodeCount; w++)
{
if (graph[frontElement][w] == 1 && visitedNodes[w] == 0)
{
if (graph[frontElement][w] == 1 && visitedNodes[w] == 0)
{
insertQueue(w);
}
insertQueue(w);
}
}
return 0;
}
return 0;
}

int isCyclic(int graph[][MAX], int visitedNodes[], int nodeCount)
{
int v;
for(v = 0; v < nodeCount; v++)
int v;
for(v = 0; v < nodeCount; v++)
{
if(visitedNodes[v] == 0)
{
if(visitedNodes[v] == 0)
{
if(bfs(v, graph, visitedNodes, nodeCount) == 1){
return 1;
}
if(bfs(v, graph, visitedNodes, nodeCount) == 1){
return 1;
}
}
return 0;
}
return 0;
}

int main()
{
int nodeCount, graph[MAX][MAX], visitedNodes[MAX];
printf("Enter the number of nodes: ");
scanf("%d", &nodeCount);
printf("Enter the adjacency matrix:\n");
readMatrix(graph, nodeCount);
markUnvisited(visitedNodes, nodeCount);
if(isCyclic(graph, visitedNodes, nodeCount))
{
printf("The graph is cyclic\n");
}
else
{
printf("The graph is acyclic\n");
}
return 0;
int nodeCount, graph[MAX][MAX], visitedNodes[MAX];
printf("Enter the number of nodes: ");
scanf("%d", &nodeCount);
printf("Enter the adjacency matrix:\n");
readMatrix(graph, nodeCount);
markUnvisited(visitedNodes, nodeCount);
if(isCyclic(graph, visitedNodes, nodeCount))
{
printf("The graph is cyclic\n");
}
else
{
printf("The graph is acyclic\n");
}
return 0;
}

0 comments on commit f8d716e

Please sign in to comment.