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
|
# pred nyní nemá žádné potomky, takže je to poslední rekurzivní potomek původního předchůdce
|
||||||
return pred
|
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.
|
# 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
|
current = node
|
||||||
while current is not None:
|
while current is not None:
|
||||||
yield current
|
yield current
|
||||||
current = current.succ
|
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ů
|
# Generátor potomků
|
||||||
def all_children(node):
|
def all_children(node):
|
||||||
brothers = all_brothers(node.first_child)
|
brothers = all_brothers(node.first_child)
|
||||||
|
|
Loading…
Reference in a new issue