如何使用Python在二叉树中插入数据?
我有一个从如何使用Python在二叉树中插入数据?,python,recursion,data-structures,binary-tree,Python,Recursion,Data Structures,Binary Tree,我有一个从 import numpy as np dataset = np.random.normal(50,10,100) 记录此数据集的最小值和最大值。 设[min,max]为根节点。那么它有100分。让[min,min+d]和[max-d,max](其中d=(max-min)/2)分别为左和右子节点。继续这样做。当节点的点数小于或等于5点(数据集中的点数)时停止。如何查找每个节点的点数 我已经用节点(1,2,3…从上到下,从左到右)构建了原始树,现在我想插入每个节
import numpy as np
dataset = np.random.normal(50,10,100)
记录此数据集的最小值和最大值。
设[min,max]为根节点。那么它有100分。让[min,min+d]和[max-d,max](其中d=(max-min)/2)分别为左和右子节点。继续这样做。当节点的点数小于或等于5点(数据集中的点数)时停止。如何查找每个节点的点数
我已经用节点(1,2,3…从上到下,从左到右)构建了原始树,现在我想插入每个节点的数据。我还编写了分割每个间隔的函数。它只需要一个递归算法就可以完成。但是如何将它们组合在一起呢
import numpy as np
dataset = np.random.normal(50,10,100)
左侧子对象(函数)
为了树
一些提示
def split_L(l):
d = (max(l)-min(l)) / 2
print('max=', max(l))
print('min=', min(l))
print('d=', d)
j = 0
m = []
for i in dataset:
if i in l:
j=j+1
print('Number of points=',j)
for k in l:
if k < min(l)+d:
m.append(k)
while j > 5:
return m
def split_R(l):
d = (max(l)-min(l)) / 2
print('max=', max(l))
print('min=', min(l))
print('d=', d)
j = 0
m = []
for i in dataset:
if i in l:
j=j+1
print('Number of points=',j)
for k in l:
if k >= max(l)-d:
m.append(k)
while j > 5:
return m
class Node:
def __init__(self,data):
self.data = data
self.left = None
self.right = None
class Tree:
def __init__(self):
self.list = [self.root_node()]
def root_node(self):
root_node = Node(1)
return root_node
def add_node(self, data):
new_node = Node(data)
self.list.append(new_node)
if len(self.list) % 2==0:
self.list[len(self.list) // 2].left = new_node
else:
self.list[len(self.list) // 2].right = new_node
def output_tree(self):
for i in range(len(self.list)):
print(self.list[i].data)
if __name__ == '__main__':
tree = Tree()
for i in range(2,100):
tree.add_node(i)
tree.output_tree()