0
我試圖編寫代碼,如果給定一棵樹,將通過樹並返回該樹中的最小值,如果樹爲空,它將返回val。我現在編譯的內容不會運行。任何幫助?在二叉樹中返回最小值
minValue :: Ord a => a -> BTree a -> a
minValue val Empty = val
minValue val (BNode v left Empty) = minimum [minValue v left]
minValue val (BNode v Empty right) = minimum [minValue v right]
minValue val (BNode v left right) = minimum ([minValue v left]++[minValue v right])
在二叉搜索樹中排列了樹的元素嗎?在任何情況下,您都不需要使用列表或「最小」來執行此操作。在第二和第三個方程中,它們是多餘的 - 單元素列表的最小值是列表的一個元素。 – 2015-04-02 20:56:33
樹是有序的,是的。 – tamais2 2015-04-02 21:00:20
另外:我只是試過你的功能,它有這個bug:'minValue 17(BNode 22 Empty Empty)== 22' – 2015-04-02 21:08:41