class BinaryTree:
def __init__(self, left=None, right=None):
self.left = left
self.right = right
def __str__(self):
left = "" if self.left is None else self.left.__str__()
right = "" if self.right is None else self.right.__str__()
return f"({left})({right})"
def count_leaves(self):
cnt = 1 if self.left is None else self.left.count_leaves()
cnt += 1 if self.right is None else self.right.count_leaves()
return cnt
def parse(par):
i, c = 1, 1
while c != 0:
c += 1 if par[i] =='(' else -1
i += 1
return (par[1: i - 1], par[i + 1: -1])
def make_tree(s):
l, r = parse(s)
left = None if l == "" else make_tree(l)
right = None if r == "" else make_tree(r)
return BinaryTree(left, right)
b = BinaryTree(BinaryTree(), BinaryTree(BinaryTree(), None ) )
s = str(b)
print(s)
print(b.count_leaves())
bb = make_tree(s)
print(bb)
To embed this program on your website, copy the following code and paste it into your website's HTML: