【发布时间】:2012-06-07 13:12:20
【问题描述】:
我正在尝试编写一个函数来搜索玫瑰树中的给定元素并返回它的位置。
当我向你展示我已经得到的东西时可能会更清楚:
给定一棵有定义的树:
数据树文本 = 节点值 [树值]
例如:
test = Node "1" [
Node "11" [
Node "111" [],
Node "112" [
Node "1121" [], Node "1122" [], Node "1123" []
]
],
Node "12" []
]
1
11 12
111 112
1121 1122 1123
我正在寻找函数搜索:
search :: String -> Tree String -> [Integer]
搜索 1123 测试 -> 应该返回 [1,2,3]
- 1=11 的第一个子树 -> 11=112 的第二个子树,112=1123 的第三个子树
我知道如何遍历树,
display (Node v xs) = v ++ concatMap display xs
但是不知道如何将整数值分配给子树数组的每个元素,并另外从树的上部到下部递归地传递它。 你们能指导我在哪里/如何寻找解决方案吗?我对 Haskell 很陌生..
【问题讨论】:
标签: haskell