Introduction - If you have any usage issues, please Google them yourself
Topological sorting ... see wikipedia article for more info ...input is a set of constraints ... if A is above B, and B is above C, input = (A, B), (B, C) ... output is correct ordering of input elements... A, B, C