我正在尝试绘制一个二叉树(最好是一个表达式树),其中每个节点都有两个子节点或没有两个子节点。我用 igraph 遇到了这个解决方案:
library(igraph)
g= graph_from_literal(1 - 2,
1 - 3,
2 - 4,
2 - 5)
V(g)$label <- c("+","*","X3","1","X1")
plot(g, layout = layout.reingold.tilford(g, root=1), vertex.size=25)
,效果很好! 但是,我想绘制具有不同大小的自定义树,这些树将从代码中读取。
代码最初是二进制代码,我可以将其转换为更简单的形式,例如带有以下向量的列表
c("+","*")
c(NA,1)
c("X3","X1")
是上面树的自定义表示形式:第一个向量表示树的顶部到底部的运算符,第二和第三个向量表示每个操作的第一和第二操作数(NA表示该操作数实际上是a的结果操作,在这种情况下来自第二个运算符(*),数字是常量,“ X $”表示要从变量$中读取)
什么样的函数形式(最好是igraph )可以实现这一目标?