To mark strong components. Pseudo-code TarjanDFS(𝑣, 𝑆, 𝐸, 𝑐𝑙𝑜𝑐𝑘):1Mark(𝑣)2𝑐𝑙𝑜𝑐𝑘←𝑐𝑙𝑜𝑐𝑘+13𝑣.𝑝𝑟𝑒←𝑐𝑙𝑜𝑐𝑘4𝑣.𝑙𝑜𝑤←𝑐𝑙𝑜𝑐𝑘5𝑆.Push(𝑣)6for all edges 𝑣→𝑤∈𝐸:7if 𝑤 is unmarked:8𝑐𝑙𝑜𝑐𝑘← TarjanDFS(𝑤,𝑆,𝐸,𝑐𝑙𝑜𝑐𝑘)9𝑣.𝑙𝑜𝑤← Min(𝑣.𝑙𝑜𝑤,𝑤.𝑙𝑜𝑤)10else:11if 𝑤.𝑟𝑜𝑜𝑡=none:12𝑣.𝑙𝑜𝑤← Min(𝑣.𝑙𝑜𝑤,𝑤.𝑝𝑟𝑒)1314if 𝑣.𝑙𝑜𝑤=𝑣.𝑝𝑟𝑒:15do:16𝑤←𝑆.Pop( )17𝑤.𝑟𝑜𝑜𝑡←𝑣18while 𝑤≠𝑣1920return 𝑐𝑙𝑜𝑐𝑘Tarjan(𝐺):1𝑐𝑙𝑜𝑐𝑘←02𝑆← stack(∅)3for all vertices 𝑣∈𝐺.𝑉:4Unmark(𝑣)5𝑣.𝑟𝑜𝑜𝑡←none67for all vertices 𝑣:8if 𝑣 is unmarked:9𝑐𝑙𝑜𝑐𝑘← TarjanDFS(𝑣,𝑆,𝐺.𝐸,𝑐𝑙𝑜𝑐𝑘)10 Runtime 𝑂(|𝑉|+|𝐸|)