Breadth-First and Depth-First Search

Pseudocode for BFS and DFS

BFS(G, s){
    Q.push(s) // a queue
    Mark s as visited // how?

    while(Q is not empty)
        u = Q.pop
        for each(v in adjList(u)){
             if(v not visited){ // how?
                Q.push(v)
                Mark v as visited //how?
            }
        }
    }
}


DFS(G, s){
    S.push(s) // a stack
    Mark s as visited // how?

    while(S is not empty)
        u = S.pop
        for each(v in adjList(u)){
             if(v not visited){ // how?
                S.push(v)
                Mark v as visited //how?
            }
        }
    }
}