recently i have been studying graph theory from competitive programming book ,in applications of DFS there was articulation points and bridges . He defines other than visited array a another one here is the statement.
[This algorithm maintains two numbers: dfs_num(u) and dfs_low(u). Here, dfs_num(u) stores the iteration counter when the vertex u is visited for the first time and not just for distinguishing DFS_WHITE versus DFS_GRAY/DFS_BLACK. The other number dfs_low(u) stores the lowest dfs_num reachable from DFS spanning sub tree of u. Initially dfs_low(u) = dfs_num(u) when vertex u is first visited. Then, dfs_low(u) can only be made smaller if there is a cycle (some back edges exist). Note that we do not update dfs_low(u) with back edge (u, v) if v is a direct parent of u. ]
please anyone give an explanation for this part.
You have to keep an array low[] where low[node] is the smallest level you can acces from node using no matter how many direct edges and only a back edge(this edge must not be the edge to the node's parent). Now, a node is an articulation point if and only there exist a "child" of the node in the dfs tree for which low[child]>=the level of the node. A special case is the root of the tree -> it is an articulation point if it has at least two children.
CAN U HELP ME WHICH BOOK CURRENTLY USED FOR PROGRAMMING
For programming I'd recommend using a computer
also will be great to use brain