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
55
scratch/data_structures_and_algorithms/permutations.py
Normal file
55
scratch/data_structures_and_algorithms/permutations.py
Normal file
|
@ -0,0 +1,55 @@
|
|||
class Node(object):
|
||||
# ctor :: a -> [a] -> Node(a)
|
||||
def __init__(self, value, children=[]):
|
||||
self.value = value
|
||||
self.children = children
|
||||
|
||||
|
||||
# is_leaf :: Node(a) -> Boolean
|
||||
def is_leaf(node):
|
||||
return len(node.children) == 0
|
||||
|
||||
|
||||
# enumerate :: Node(a) -> Set(List(a))
|
||||
def enumerate(node):
|
||||
current = []
|
||||
result = []
|
||||
q = []
|
||||
|
||||
q.append(node)
|
||||
|
||||
while q:
|
||||
x = q.pop()
|
||||
print(x.value)
|
||||
|
||||
for c in x.children:
|
||||
q.append(c)
|
||||
|
||||
current.append(x.value)
|
||||
print(current)
|
||||
|
||||
if is_leaf(x):
|
||||
result.append(current)
|
||||
print("Reseting current")
|
||||
current = []
|
||||
|
||||
return result
|
||||
|
||||
|
||||
node = Node('root', [
|
||||
Node('a', [
|
||||
Node('b', [Node('c')]),
|
||||
Node('c', [Node('b')]),
|
||||
]),
|
||||
Node('b', [
|
||||
Node('a', [Node('c')]),
|
||||
Node('c', [Node('a')]),
|
||||
]),
|
||||
Node('c', [
|
||||
Node('a', [Node('b')]),
|
||||
Node('b', [Node('a')]),
|
||||
])
|
||||
])
|
||||
|
||||
print('----------')
|
||||
print(enumerate(node))
|
Loading…
Add table
Add a link
Reference in a new issue