我已经获得了以下代码,我希望能够完成它。目的是设计一个函数,该函数将计算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
提前谢谢你。
答案 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
来实现想要的结果?