Tidy up structure of briefcase
I had a spare fifteen minutes and decided that I should tidy up my monorepo. The work of tidying up is not finished; this is a small step in the right direction. TL;DR - Created a tools directory - Created a scratch directory (see README.md for more information) - Added README.md to third_party - Renamed delete_dotfile_symlinks -> symlinkManager - Packaged symlinkManager as an executable symlink-mgr using buildGo
This commit is contained in:
parent
5ec5a6da8c
commit
fabf1c9334
89 changed files with 53 additions and 41 deletions
|
|
@ -1,48 +0,0 @@
|
|||
from collections import deque
|
||||
from heapq import heappush, heappop
|
||||
from fixtures import weighted_graph
|
||||
|
||||
|
||||
def put(t, x, xs):
|
||||
if t == 'stack':
|
||||
return xs.append(x)
|
||||
if t == 'queue':
|
||||
return xs.append(x)
|
||||
if t == 'priority':
|
||||
return heappush(xs, x)
|
||||
|
||||
|
||||
def pop(t, xs):
|
||||
if t == 'stack':
|
||||
return xs.pop()
|
||||
if t == 'queue':
|
||||
return xs.popleft()
|
||||
if t == 'priority':
|
||||
return heappop(xs)
|
||||
|
||||
|
||||
# shortest_path :: Vertex -> Vertex -> Graph -> [Vertex]
|
||||
def shortest_path(a, b, g):
|
||||
"""Returns the shortest path from vertex a to vertex b in graph g."""
|
||||
t = 'priority'
|
||||
xs = []
|
||||
seen = set()
|
||||
# Map(Weight, [Vertex])
|
||||
m = {}
|
||||
|
||||
put(t, (0, [a], a), xs)
|
||||
|
||||
while xs:
|
||||
w0, path, v = pop(t, xs)
|
||||
|
||||
seen.add(v)
|
||||
if v == b:
|
||||
m[w0] = path
|
||||
for w1, x in g.get(v):
|
||||
if x not in seen:
|
||||
put(t, (w0 + w1, path + [x], x), xs)
|
||||
|
||||
return m
|
||||
|
||||
|
||||
print(shortest_path('a', 'f', graph_a))
|
||||
Loading…
Add table
Add a link
Reference in a new issue