找地板& BST与Haskell的天花板

时间:2014-12-07 17:36:34

标签: function haskell binary-search-tree floor

我已经获得了以下代码,我希望能够完成它。目的是设计一个函数,该函数将计算BST中给定元素k的下限。 BST中元素“k”的最低点是小于“k”的最大键。

我真的很茫然...我已经为Java编程了这个,但是还没能在Haskell中解决这个问题。

floor :: Ord a => a -> ABST a -> Maybe a
floor x Empty    = Nothing
floor x (Node y w lt rt) 
  | x == y       = Just y
  | x < y = undefined
  | x > y = undefined

提前谢谢你。

1 个答案:

答案 0 :(得分:1)

您可以尝试检查&#34;自然&#34;递归调用有助于解决这个问题。

即,考虑:

floor :: Ord a => a -> ABST a -> Maybe a
floor x Empty    = Nothing
floor x (Node y w lt rt) 
  | x == y       = Just y
  | x < y = ???
  | x > y = ???
  where floorL = floor x lt
        floorR = floor x rt

那么,有没有办法利用floorL,floorR来实现想要的结果?