двудольный граф для несвязного графа - PullRequest
1 голос
/ 18 мая 2019

Я пытаюсь проверить, является ли график двудольным или нет, но он всегда возвращает меня 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;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...