SJSU fall2013 cs146 lab4 topological sort