Completion requirements
#include<stdio.h>
#include<stdlib.h>
struct que
{
int size;
int front;
int rare;
int* array;
};
int isEmpty(struct que *q){
if(q->rare==q->front){
return 1;
}
return 0;
}
int isFull(struct que *q){
if(q->rare==q->size-1){
return 1;
}
return 0;
}
void enque(struct que *q, int val){
if(isFull(q)){
printf("This Queue is full\n");
}
else{
q->rare++;
q->array[q->rare] = val;
}
}
int deque(struct que *q){
int a = -1;
if(isEmpty(q)){
printf("This Queue is empty\n");
}
else{
q->front++;
a = q->array[q->front];
}
return a;
}
int main(){
struct que q;
q.size = 100;
q.front = q.rare = 0;
q.array = (int*) malloc(q.size*sizeof(int));
int node;
int i = 1;
int visited[7] = {0,0,0,0,0,0,0};
int matrix [7][7] = {
{0,1,1,1,0,0,0},
{1,0,1,0,0,1,0},
{1,0,0,1,1,0,0},
{1,0,1,0,1,0,0},
{0,0,0,1,0,1,1},
{0,1,0,0,1,0,0},
{0,0,0,0,1,0,0}
};
printf("%d", i);
visited[i] = 1;
enque(&q, i);
while (!isEmpty(&q))
{
int node = deque(&q);
for (int j = 0; j < 7; j++)
{
if(matrix[node][j] ==1 && visited[j] == 0){
printf("%d", j);
visited[j] = 1;
enque(&q, j);
}
}
}
return 0;
}
Last modified: Thursday, 18 May 2023, 1:39 PM