Treelib: generátor a funkce na hledání následujících nodů
This commit is contained in:
		
							parent
							
								
									8071cc2554
								
							
						
					
					
						commit
						78a667b42c
					
				
					 1 changed files with 28 additions and 5 deletions
				
			
		|  | @ -107,6 +107,12 @@ def all_children(node): | ||||||
| 		yield br | 		yield br | ||||||
| 
 | 
 | ||||||
| # Generátor následníků v "the-right-order" | # Generátor následníků v "the-right-order" | ||||||
|  | # Bez tohoto vrcholu | ||||||
|  | def all_following(node): | ||||||
|  | 	current = general_next(node) | ||||||
|  | 	while current is not None: | ||||||
|  | 		yield current | ||||||
|  | 		current = general_next(current) | ||||||
| 
 | 
 | ||||||
| ## Filtrační hledání | ## Filtrační hledání | ||||||
| # Najdi dalšího bratra nějakého typu, nebo None. | # Najdi dalšího bratra nějakého typu, nebo None. | ||||||
|  | @ -115,15 +121,32 @@ def get_next_brother_of_type(node, type): | ||||||
| 	for current in right_brothers(node): | 	for current in right_brothers(node): | ||||||
| 		if isinstance(current, type): | 		if isinstance(current, type): | ||||||
| 			return current | 			return current | ||||||
|  | 	return None | ||||||
| 	 | 	 | ||||||
| def get_prev_brother_of_type(node, type): | def get_prev_brother_of_type(node, type): | ||||||
| 	pass | 	# Na tohle není rozumný generátor, ani ho asi nechceme, prostě to implementujeme cyklem. | ||||||
|  | 	current = node | ||||||
|  | 	while safe_pred(current) is not None: | ||||||
|  | 		current = safe_pred(current) | ||||||
|  | 		if isinstance(current, type): | ||||||
|  | 			return current | ||||||
|  | 	return None | ||||||
| 
 | 
 | ||||||
| # Totéž pro "the-right-order" pořadí | # Totéž pro "the-right-order" pořadí | ||||||
| def get_next_node_of_type(current, type): | def get_next_node_of_type(node, type): | ||||||
| 	pass | 	for cur in all_folowing(node): | ||||||
| def get_next_node_of_type(current, type): | 		if isinstance(cur, type): | ||||||
| 	pass | 			return cur | ||||||
|  | 	return None | ||||||
|  | 
 | ||||||
|  | def get_prev_node_of_type(node, type): | ||||||
|  | 	# Na tohle není rozumný generátor, ani ho asi nechceme, prostě to implementujeme cyklem. | ||||||
|  | 	current = node | ||||||
|  | 	while general_prev(current) is not None: | ||||||
|  | 		current = general_prev(current) | ||||||
|  | 		if isinstance(current, type): | ||||||
|  | 			return current | ||||||
|  | 	return None | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
		Loading…
	
		Reference in a new issue
	
	 Pavel 'LEdoian' Turinsky
						Pavel 'LEdoian' Turinsky