想用Julia写一个简单的k近邻但不知道树结构怎么用Julia实现
希望有大佬教教我
1 个赞
Dict底层好像用树实现
1 个赞
https://github.com/JuliaCollections/AbstractTrees.jl/blob/master/examples/binarytree_core.jl
用 Ref
可能更有指针味
数据结构轮子参考:
kNN
1 个赞
好的好的 谢谢大佬
简单点的话直接用array来实现就可以了,比如初始化就是[r,,],其中r是根节点,后面分别为左右子数
binarytree 都可以用array 实现
似乎不是,我觉得更像哈希表
把root存在1号位,把 root的孩子存在2,3号位。把2的孩子存在4,5。把3的孩子存在6,7。依次反复操做。
懂?
我回复人家Dict的底层是哈希表和你的话有什么关系么?
我以为你回复上面那个。
试试这个
mutable struct BinaryTree
data::Int
left::Union{BinaryTree,Nothing}
right::Union{BinaryTree,Nothing}
function BinaryTree(data::Int, left=nothing, right=nothing)
new(data, left, right)
end
end
# 前序遍历递归实现
function preorder(tree::BinaryTree)
print(tree.data," ")
if tree.left != nothing
preorder(tree.left)
end
if tree.right != nothing
preorder(tree.right)
end
return
end
1 个赞