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
				
			
		
							
								
								
									
										31
									
								
								data_structures_and_algorithms/topo-sort.py
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										31
									
								
								data_structures_and_algorithms/topo-sort.py
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,31 @@ | |||
| from fixtures import unweighted_digraph | ||||
| from collections import deque | ||||
| 
 | ||||
| # vertices_no_in_edges :: UnweightedDigraph -> Set(Vertex) | ||||
| def vertices_no_in_edges(g): | ||||
|     """Return the vertices in graph `g` with no in-edges.""" | ||||
|     result = set() | ||||
|     vertices = set(g.keys()) | ||||
|     for neighbors in g.values(): | ||||
|         result = result.union(neighbors) | ||||
|     return vertices ^ result | ||||
| 
 | ||||
| # topo_sort :: UnweightedDigraph -> List(Vertex) | ||||
| def topo_sort(g): | ||||
|     q = deque() | ||||
|     seen = set() | ||||
|     result = [] | ||||
|     for x in vertices_no_in_edges(g): | ||||
|         q.append(x) | ||||
|     while q: | ||||
|         vertex = q.popleft() | ||||
|         if vertex in seen: | ||||
|             continue | ||||
|         result.append(vertex) | ||||
|         neighbors = g.get(vertex) | ||||
|         for x in g.get(vertex): | ||||
|             q.append(x) | ||||
|         seen.add(vertex) | ||||
|     return result | ||||
| 
 | ||||
| print(topo_sort(unweighted_digraph)) | ||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue