gpt4 book ai didi

r - 从 R 中的排序列表创建二叉搜索树

转载 作者:行者123 更新时间:2023-12-02 20:30:07 25 4
gpt4 key购买 nike

我正在练习递归并尝试从链表实现 BST。我尝试将解决方案从这里转换为 R: Create Balanced Binary Search Tree from Sorted linked list

给定一个向量vec我想找到BST,例如:

  0
/ \
-3 9
/ /
-10 5


vec <- c(-10,-3,0,5,9)

这是我尝试递归解决这个问题,但它不起作用:

tobt <- function(vec, start, end) {
if (start > end) return(NA)
mid <- start + (end - start) / 2
left <- tobt(vec, start, mid-1)
right <- tobt(vec, mid+1, end)
return(c(left, right))
}

tobt(vec, 1, 5)

我的错误在哪里?

最佳答案

您需要使用允许构建树的结构,例如list。第二个问题是忽略用数字填充树节点的父级

您的函数的可能变体:

tobt <- function(vec, start, end) {
if (start > end) return(NULL)
mid <- start + (end - start) %/% 2
left <- tobt(vec, start, mid-1)
parent <- vec[mid]
right <- tobt(vec, mid+1, end)
return(list(left=left, node = parent, right=right))
}

关于r - 从 R 中的排序列表创建二叉搜索树,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49048221/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com