【发布时间】:2018-11-26 03:43:14
【问题描述】:
对于树形数据结构来说还是很陌生的。我得到了 2 个变量 rules 和 operators。它们中的每一个都是字符串列表。例如:
op = ['&',"|","&"]
rules = ['a','b','c','d']
len(op) 必须始终等于 len(rules)-1,因为 op 始终连接规则或另一个 op。
所以在上面,一个可能的树是:
"|"
/ \
"&" "&"
| \ | \
"a" "b" "c" "d"
另一种可能是
"&"
/ \
"|" "d"
/ \
"&" "c"
| \
"a" "b"
一棵无效的树:
"c"
| \
"|" "d"
上面的树是无效的,因为上面的另一个运算符不能是规则。
现在随着规则和运算符数量的增加,树的组合将会无穷无尽。我的问题是是否可以随机生成上述树?有这个算法吗?更具体地说,如果您知道节点和叶子必须是什么,有没有办法随机创建二叉树?
谢谢
【问题讨论】:
-
如果你知道节点和叶子必须是什么,那么随机性从何而来?
-
在问题中提到的树结构中
标签: python algorithm tree binary-tree