我有一个数据集是从
import numpy as np
dataset = np.random.normal(50,10,100)
记录此数据集的min和max。让[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()
一些建议。
二叉搜索树(BST)和二叉树(BT)中的插入有什么区别?我知道,在BST中,您将新节点的值与根进行比较,如果较小,则添加到其左侧,如果较大,则将其添加到根的右侧。BT的程序是否相同?如果没有,插入和移除的步骤是什么?
到目前为止我的理解是: > (i)调用值=10的。由于root已经设置为50,如果条件为10<50,程序将进入第二个。 (ii)调用Root.left为10,节点值为2的递归insert函数。程序再次进入第二个if条件,条件为2<10。 (iii)再次调用Root.left为None,value为2的递归insert函数。现在程序进入first if条件,root获得值2。这将完成递归重复调用,程
我最近完成了一个项目的二进制搜索树,我正在工作。很顺利,我学到了很多。然而,现在我需要实现一个常规的二叉树...出于某种原因,这让我难倒了。 我正在寻找一种方法来做我的InsertNode功能... 通常在BST中,您只需检查数据 有谁能帮我实现一个函数,只需将一个新节点从左到右不按特定顺序添加到二叉树中? 以下是我的BST插页:
我目前正在学习使用java的树,在二叉树中插入项时出现了一些错误,我不知道为什么它不起作用 这是代码:树节点: 树类: 每当我添加一个项目,根仍然为空,没有右或左的项目,如果有人能帮助我,我会非常感激
我试图在二叉树中插入节点,如果我用addNode(Node root)替换方法addNode(Node Node)代码运行良好。这是因为我在第一行声明了吗?请解释一下。addNode方法由于字数限制而不完整,否则它是完整的,运行良好。
下面是一个二叉查找树,它有一个根节点、一个左节点和一个右节点。代码有效,但我想显示这个二叉查找树,这样我就可以看到图层中的每个节点…这是代码…