发布一般树的订单? (哈斯克尔)

时间:2018-08-11 15:44:49

标签: haskell binary-search-tree

我早些时候问过这个问题,但是我不知道玫瑰树和普通树之间的区别。现在我知道数据结构略有不同。

data GTree a = Leaf a | Branch [GTree a]

我想编写一个postorderG函数,该函数会给我一个列表,其中列出了后继Gtree的所有元素。

我知道如何为二叉树做这件事。

data BTree a = Nil | Node a (BTree a) (BTree a) 

postOrder :: BTree a -> [a]
postOrder Nil = []
postOrder (Node x lt rt) = (postOrder lt) ++ (postOrder rt) ++ [x] 

1 个答案:

答案 0 :(得分:2)

GTree的分支数不限您所希望的,而不仅仅是两个。订单遍历的概念仍然相同:在访问当前节点之前先访问 all 分支。您可以通过在分支列表上进行显式递归或使用mapreduce来做到这一点。