【问题标题】:Max of a Tree in haskell [closed]Haskell中的一棵树的最大值[关闭]
【发布时间】:2017-11-07 13:29:29
【问题描述】:
data Tree a = Null | Node a (Tree a) (Tree a)
     deriving (Read,Show)

这里有一个问题,如何找到二叉树的最大值?

【问题讨论】:

  • 你发布这些代码是为了什么?
  • 如果你设法对一棵树进行排序,我不明白找到最大值有多难。
  • 你尝试了什么?这看起来更像是一个问题转储而不是一个问题。此外,您的大部分代码与任务无关:我猜您没有编写它,但您只是从其他地方复制和粘贴。您应该展示您的尝试,并描述您的问题。另见stackoverflow.com/help/on-topic
  • 我减小了代码的大小
  • 现在这个问题没有(不再是)OP 方面的尝试。

标签: haskell binary-search-tree


【解决方案1】:

正如一些 cmets 所建议的,您可以对树进行排序,然后取最大值。您可以使用之前的 inOrdermakeTree 函数来创建树排序函数:

treeSort :: (Ord a) => [a] -> [a]
treeSort xs = inOrder (makeTree xs)

这会按排序顺序列出您的树项目,然后只需使用 maximum 即可:

maxTree :: (Ord a) => [a] -> a
maxTree xs = maximum (treeSort xs)

有这种行为:

Prelude> let sortedTree = treeSort [4,3,2,1,5,6,8,7,9]
Prelude> sortedTree
[1,2,3,4,5,6,7,8,9]
Prelude> maxTree sortedTree
9

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-10-15
    • 2014-11-01
    • 2020-02-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-21
    相关资源
    最近更新 更多