Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def hamilton(G, size, pt, path=[]):
- print('hamilton called with pt={}, path={}'.format(pt, path))
- if pt not in set(path):
- path.append(pt)
- if len(path)==size:
- return path
- for pt_next in G.get(pt, []):
- res_path = [i for i in path]
- candidate = hamilton(G, size, pt_next, res_path)
- if candidate is not None: # skip loop or dead end
- return candidate
- print('path {} is a dead end'.format(path))
- else:
- print('pt {} already in path {}'.format(pt, path))
- # loop or dead end, None is implicitly returned
- G = {1:[2,3,4], 2:[1,3,4], 3:[1,2,4], 4:[1,2,3]}
- hamilton(G,4,1,[])
Advertisement
Add Comment
Please, Sign In to add comment