Move tour, LOG and LOGN in utils, add vertices_from_set

This commit is contained in:
Johann Dreo 2014-03-25 20:58:52 +01:00
commit dd1fe6569e
3 changed files with 34 additions and 23 deletions

View file

@ -1,4 +1,20 @@
import sys
def LOG( *args ):
"""Print something on stderr and flush"""
for msg in args:
sys.stderr.write( str(msg) )
sys.stderr.write(" ")
sys.stderr.flush()
def LOGN( *args ):
"""Print something on stdeer, with a trailing new line, and flush"""
LOG( *args )
LOG("\n")
def adjacency_from_set( segments ):
graph = {}
for start,end in segments:
@ -8,3 +24,17 @@ def adjacency_from_set( segments ):
graph[end].append( start )
return graph
def vertices_from_set( segments ):
vertices = set()
for start,end in segments:
vertices.add(start)
vertices.add(end)
return vertices
def tour(lst):
# consecutive pairs in lst + last-to-first element
for a,b in zip(lst, lst[1:] + [lst[0]]):
yield (a,b)