/* Pontificia Universidade Catolica * Campinas - Sao Paulo - Brasil * abril/2004 * * Algoritmo de Percusso em largura em um grafo. * * A partir de um no inicial i, visitado, visita-se todos os seus sucessores para em seguida * vista-se os seus sucessores, isto e, visita-se o no i e em seguida seu primeiro sucessor j e * logo apos os irmaos do no j, para entao visitar-se os sucessores de j (outros descendentes de i). * * Ultima atualizacao: 07/04/2004 - Cesar Kallas - cesarkallas@gmx.net * */ void bftraverse(int *adj, int xptr) { int yptr; queue q; /* fila */ visit(xptr); insert(q, xptr); while(!empty(q)) { xptr = remove(q); yptr = firstsucc(adj, xptr); while(yptr < N) { if( !visited(yptr) ) { visit(yptr); insert(q, yptr); } } yptr = nextsucc(adj, xptr, yptr); } }