我正在尝试编写一个函数来搜索玫瑰树中的给定元素并返回它的位置。
当我向您展示我已经得到的东西时,可能会更清楚:
给定具有定义的树:
数据树文本 = 节点值 [树值]
例如:
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 很陌生..