Treelib: Fix all_brothers, all_proper_brothers
This commit is contained in:
		
							parent
							
								
									d01c157235
								
							
						
					
					
						commit
						8fcb1b0871
					
				
					 1 changed files with 17 additions and 2 deletions
				
			
		|  | @ -65,14 +65,29 @@ def general_prev(node): | |||
| 	# pred nyní nemá žádné potomky, takže je to poslední rekurzivní potomek původního předchůdce | ||||
| 	return pred | ||||
| 
 | ||||
| # Generátor bratrů | ||||
| # Generátor pravých bratrů (konkrétně sebe a následujících potomků) | ||||
| # Generátor potomků níže spoléhá na to, že se tohle dá volat i s parametrem None. | ||||
| def all_brothers(node): | ||||
| def me_and_right_brothers(node): | ||||
| 	current = node | ||||
| 	while current is not None: | ||||
| 		yield current | ||||
| 		current = current.succ | ||||
| 
 | ||||
| # Generátor všech sourozenců (vč. sám sebe) | ||||
| def all_brothers(node): | ||||
| 	# Najdeme prvního bratra | ||||
| 	fb = first_brother(node) | ||||
| 	marb = me_and_all_brothers(fb) | ||||
| 	for cur in marb: | ||||
| 		yield cur | ||||
| 	 | ||||
| def all_proper_brothers(node): | ||||
| 	all = all_brothers(node) | ||||
| 	for br in all: | ||||
| 		if br is node: | ||||
| 			continue | ||||
| 		yield br | ||||
| 
 | ||||
| # Generátor potomků | ||||
| def all_children(node): | ||||
| 	brothers = all_brothers(node.first_child) | ||||
|  |  | |||
		Loading…
	
		Reference in a new issue
	
	 Pavel 'LEdoian' Turinsky
						Pavel 'LEdoian' Turinsky