haskell - Haskell 函数检查给定值是否在树中
问题描述
我正在尝试创建一个函数来检查给定值是否在树中,这是迄今为止得到的
data Tree = Null |
Node Int Tree Tree
deriving (Show)
testTree = Node 20 (Node 3 (Node 12 Null Null) (Node 7 Null Null))
(Node 8 (Node 4 (Node 6 Null Null) Null) Null)
isMember :: Int->Tree -> Bool
isMember x (Null) = False
isMember x(Node n st1 st2) = x == n
它没有给我任何错误,但我也想检查子树
解决方案
您只需要根据需要isMember
在每个子树上递归调用。
isMember :: Int -> Tree -> Bool
isMember x Null = False
isMember x (Node n st1 st2) = x == n || isMember x st1 || isMember x st2
推荐阅读
- html - 如何将 div 扩展到整个页面?
- laravel - Laravel 数据删除
- flutter - 边框半径不适用于带有选项卡视图小部件的容器小部件。我想要如图所示
- php - 我可以使用 xampp 在移动设备上打开我的 hmvc codeigniter 项目吗?
- arduino - 为 Arduino 使用 android GPS
- c# - 如何将完整的独立 .NetCoreApp 发布为 exe?
- java - 有什么办法可以从 div 的内部 html 中删除 \n 吗?
- excel - 我可以通过使用 vba 代码以某种方式修改 excel 中的数学自动更正列表吗?
- android - Android VideoView 根据每个设备调整大小
- python - OAuth 在 Google OAuth2 中抛出“缺少代码验证器”