Пример #1
0
void breadthFirstSearch(Graph *graph, int vertex) {
    int visited[SIZE];
    int i, currVertex;
    Queue *queue;
    for(i = 0; i < graph->V; i++) {
        visited[i] = 0;    
    }
    queue = initQueue(graph->V);
    enqueue(queue, vertex);
    
    while(!isEmptyQueue(queue)) {
        currVertex = dequeue(queue);
        visited[currVertex] = 1;
        printf(" %d", currVertex);

        for(i = 0; i < graph->V; i++) {
            //if there is an edge and that vertex is not visited
            if((graph->edgeMat[currVertex][i] == 1) && (visited[i] == 0)) {
                enqueue(queue, i);
            }
        }
    }

    releaseQueue(queue);
}
Пример #2
0
void tearDown(void) {
	releaseQueue(queues);
}