2017-09-16 53 views
1

所以,我正在玩R,以便获取分类树的挂件。我主要对为分类树创建抽象数据类型感兴趣,所以我可以开始构建它。但与C,Java等不同,我不能指向其他节点。我仅限于列表和向量。使用列表和向量实现分类树

我该如何建立?有小费吗?

+3

列表可以包含其他列表,因此可以用来实现递归数据结构 –

回答

1

通过R中扮演一点点与data.tree,我写这个

library(data.tree) 
my.tree <- Node$new('my tree') 
my.tree$key <- 1 
my.tree$var.name <- 'blahblah' 

function <- insert.Node(tree=NULL, key=1, var.name='abcd'){ 

    if (is.null(tree$key)){ 
     # Creation of root 
     tree = Node$new(paste(var.name, " < ", key, sep = '')) 
     tree$key <- key 
    } else if (key < tree$key) { 
     # Left child 
     tree$AddChildNode(insert.Node(tree$children[[1]], key, var.name)) 
    } else { 
     # Right child 
     tree$AddChildNode(insert.Node(tree$children[[2]], key, var.name)) 
    } 

} 


tree <- insert.Node(tree=my.tree, key = 4, var.name = 'hello world') 

希望这有助于。

+0

这实际上比列表和向量更简单一些:P – Mixalis