




def BinarTree(r):
return [r,[],[]]
def insertLeft(root,newBrach):
t=root.pop(1)
if len(t)>1:
root.inset(1,[newBrach,t,[]])
else:
root.insert(1,[newBrach,[],[]])
return root
def insertRight(root,newBrach):
t=root.pop(2)
if len(t)>1:
root.insert(2,[newBrach,[],t])
else:
root.insert(2,[newBrach,[],[]])
return root
def getRootVal(root):
return root[0]
def setRootVal(root,newVal):
root[0]=newVal
def getLeftChild(root):
return root[1]
def getRihtChild(root):
return root[2]
tree=BinarTree('a')
insertLeft(tree,'b')
insertRight(tree,'c')
insertLeft(getLeftChild(tree),'d')
insertRight(getLeftChild(tree),'e')
insertLeft(getRihtChild(tree),'f')
print(tree)


def count(root):
if root==[]:
return 0
else:
n1=count(root[1])
n2=count(root[2])
n=1+n1+n2
return n
tree=['a',
['b',
['d',[],[]],
['e',[],[]],
],
['c',
['f',[],[]],
[]
]
]
sum=count(tree)
print(sum)