广度优先遍历

while ( ! Q.empty() ){
    int v = Q.dequeue();//取出队首顶点v
    dTime(v) = ++clock;//发现v的时间
    for ( int u = firstNbr(v); -1 < u; u = nextNbr(v,u) )
        if ( UNDISCOVERDE == status(u) ) {
            status(u) = DISCOVERED;
            Q.enqueue(u);
            type(v,u) = TREE;
            parent(u) = v;
    } else
        type(v,u) = CROSS;
    status (v) = VISITED;
}