Add depth for tree
This commit is contained in:
parent
a916035260
commit
72864f12cd
@ -361,9 +361,6 @@ class Tree(object):
|
||||
|
||||
:example:
|
||||
|
||||
>>> nested_par = ("+", (
|
||||
... ("*", (3, 4)),
|
||||
... 2))
|
||||
>>> t = Tree.from_str("3*4+2")
|
||||
>>> [l for l in t.get_leafs()]
|
||||
[3, 4, 2]
|
||||
@ -387,17 +384,10 @@ class Tree(object):
|
||||
|
||||
:example:
|
||||
|
||||
>>> nested_par = ("+", (
|
||||
... ("*", (3, 4)),
|
||||
... 2))
|
||||
>>> t = Tree.from_nested_parenthesis(nested_par)
|
||||
>>> t = Tree.from_str('3*4+2')
|
||||
>>> [l for l in t.get_nodes()]
|
||||
['+', '*']
|
||||
>>> nested_par = ("+", (
|
||||
... ("*", (3, 4)),
|
||||
... ("*", (3, 4))
|
||||
... ))
|
||||
>>> t = Tree.from_nested_parenthesis(nested_par)
|
||||
>>> t = Tree.from_str('3*4+3*4')
|
||||
>>> [l for l in t.get_nodes()]
|
||||
['+', '*', '*']
|
||||
"""
|
||||
@ -411,6 +401,43 @@ class Tree(object):
|
||||
except AttributeError:
|
||||
pass
|
||||
|
||||
def depth(self):
|
||||
""" Return the depth of the tree
|
||||
|
||||
:example:
|
||||
|
||||
>>> nested_par = ("+", (1, 2))
|
||||
>>> t = Tree.from_nested_parenthesis(nested_par)
|
||||
>>> t.depth()
|
||||
1
|
||||
>>> nested_par = ("+", (
|
||||
... ("*", (3, 4)),
|
||||
... 2))
|
||||
>>> t = Tree.from_nested_parenthesis(nested_par)
|
||||
>>> t.depth()
|
||||
2
|
||||
>>> nested_par = ("+", (
|
||||
... ("*", (3,
|
||||
... ("/", (4, 4))
|
||||
... )),
|
||||
... 2))
|
||||
>>> t = Tree.from_nested_parenthesis(nested_par)
|
||||
>>> t.depth()
|
||||
3
|
||||
|
||||
"""
|
||||
try:
|
||||
l_depth = self.left_value.depth()
|
||||
except AttributeError:
|
||||
l_depth = 0
|
||||
|
||||
try:
|
||||
r_depth = self.right_value.depth()
|
||||
except AttributeError:
|
||||
r_depth = 0
|
||||
|
||||
return 1 + max(l_depth, r_depth)
|
||||
|
||||
def __str__(self):
|
||||
""" Overload str method
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user