Treelib: Fix all_brothers, all_proper_brothers

This commit is contained in:
Pavel 'LEdoian' Turinsky 2020-03-18 22:32:02 +01:00
parent d01c157235
commit 8fcb1b0871

View file

@ -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)