내가 어떤 이해 순서없이, 통과 후 노드를 출력 코드의이 비트를 가지고에 나무와 출력 트래버스 :하스켈 - 목록
preorder :: Tree a -> [a]
preorder Empty = []
preorder (Branch x e d) = [x]++(preorder e)++(preorder d)
createTree = Branch 'A'
(Branch 'B'
(Branch 'E' Empty Empty)
(Branch 'B' Empty Empty)
)
(Branch 'A'
(Branch 'E' Empty Empty)
(Branch 'A' Empty Empty)
)
preorder
createTree
에 출력 적용 :
ABEBAEA
을 내가 원하는 것은 루트에서가는 모든 경로 목록입니다.
["ABE","ABB","AAE","AAA"]
나는 이것을 어떻게하는지에 관해 모른다, 나는 하스켈에서의 초심자 다!
제공되는 모든 도움에 감사드립니다. 이것에
나는'preorder' 기능이와 무슨 상관이 표시되지 않습니다. – leftaroundabout
이것은 이해하기 쉬운 순서입니다 : 접두어 순서, ther는 중위어 순서 및 접미사 순서입니다. 하지만 아마 모든 노드에 대한 경로를 표시하기를 원할 것입니다. 그래서 여러분은 아마 여러분의 질문을 이해하는 방법이기도합니다.이를 달성하기 위해 스택을 사용해야합니다. – Yoda
당신의 예제는'Branch 'A'Empty (Branch 'B'Empty Empty)'의 경로가 무엇인지 명확히하지 않는다. '[ "AB"]'또는 [[A ","AB "]'라고 말할 수 있습니다. – chi