code: def get_roots(self):
      
      if self.__directionless:
        sys.stderr.write("ERROR: can't get roots of an undirected graph\n")
        sys.exit()
      outputids = self.__nodes.keys()
      #print outputids
      rootset  = set(outputids) -  set(self.__child_to_parent.keys())
      return [self.__nodes[x] for x in rootset]
docs: get the roots of a graph.  must be a directed graph
  
      :returns: root list of nodes
      :rtype: Node[]