Splice ./universe directory into ./
Manually merging: - README.md: I added the description from universe/README.md into the heading of dotfiles/README.md. - .envrc: dotfiles/.envrc was a superset of universe/.envrc - .gitignore: Adding some of the ignored patterns from universe/.gitignore to dotfiles/.gitignore Everything else here should be a simple rename.
This commit is contained in:
		
							parent
							
								
									fb9380ba26
								
							
						
					
					
						commit
						5c9079a410
					
				
					 133 changed files with 17 additions and 7979 deletions
				
			
		
							
								
								
									
										55
									
								
								data_structures_and_algorithms/permutations.py
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										55
									
								
								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