【问题标题】:create binary search tree from sorted list in R从R中的排序列表创建二叉搜索树
【发布时间】:2018-03-01 11:00:59
【问题描述】:

我正在练习递归并尝试从链表中实现 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)

我的错误在哪里?

【问题讨论】:

    标签: r tree binary-tree binary-search-tree


    【解决方案1】:

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

    您的函数的可能变体:

    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))
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-12-05
      • 2011-05-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-21
      相关资源
      最近更新 更多