-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdis_binary.py
43 lines (33 loc) · 1.29 KB
/
dis_binary.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
class newNode:
def __init__(self, item):
self.key=item
self.left = None
self.right = None
def preorder(root) :
if (root != None) :
print(root.key, end = " " )
preorder(root.left)
preorder(root.right)
def constructTrees(start, end):
list = []
if (start > end) :
list.append(None)
return list
for i in range(start, end + 1):
leftSubtree = constructTrees(start, i - 1)
rightSubtree = constructTrees(i + 1, end)
for j in range(len(leftSubtree)) :
left = leftSubtree[j]
for k in range(len(rightSubtree)):
right = rightSubtree[k]
node = newNode(i) # El valor de i se vuelve el valor del nodo
node.left = left # El valor de left se vuelve el valor del nodo izquierdo
node.right = right # El valor de right se vuelve el valor del nodo derecho
list.append(node) # Se agrega el nodo a la lista
return list
if __name__ == '__main__':
totalTreesFrom1toN = constructTrees(1, 4)
print("Distinct binary trees de 1 a 4 son:\n")
for i in range(len(totalTreesFrom1toN)):
preorder(totalTreesFrom1toN[i])
print()