Я пытаюсь проверить, является ли график двудольным или нет, но он всегда возвращает меня 1, я думаю, что проблема в этом, но я не вижу, в чем проблема
int Bfs_Bipartite(struct Graph* graph, int v)
{
graph->visited[v] = 1;
graph->level[v] = 1;
struct Queue* queue = CreateQueue();
enQueue(queue, v);
while(!isEmpty(queue))
{
int dequeueVertex = deQueue(queue);
printf("\nVisited vertex: %d", dequeueVertex);
struct node* head = graph->adjList[dequeueVertex];
while(head)
{
int u = head->vertex;
if(graph->level[u] == -1)
{
graph->visited[u] = 1;
graph->level[u] = 1- graph->level[v];
enQueue(queue, u);
}
else
if(graph->level[v] == graph->level[u])
{ printf("sdf");
return 0;
}
head = head->next;
}
}
return 1;