title: How do I learn Tarjan's algorithm?
body: <p>I have been trying to learn Tarjan's algorithm from Wikipedia for 3 hours now, but I just can't make head or tail of it. :(</p>
  
  <p><a href="http://en.wikipedia.org/wiki/Tarjan%27s_strongly_connected_components_algorithm">http://en.wikipedia.org/wiki/Tarjan's_strongly_connected_components_algorithm#cite_note-1</a></p>
  
  <p>Why is it a subtree of the DFS tree? (actually DFS produces a forest? o_O)
  And why does <code>v.lowlink=v.index</code> imply that <code>v</code> is a root?</p>
  
  <p>Can someone please explain this to me / give the intuition or motivation behind this algorithm?</p>