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