【发布时间】:2019-09-17 20:19:17
【问题描述】:
我正在尝试创建一个函数 chkHeapProperty,它将检查给定堆是否满足堆要求:“存储在节点中的值必须小于或等于它的值子节点” 堆示例:
1
/ \
2 3
let rec chkHeapProperty heap =
match heap with
| EmptyHP -> true
| HP(root, leftHeap, rightHeap) when root < leftHeap && root < rightHeap -> true
这就是我得到的。我的第一个想法是遍历所有节点并将它们放入一个列表中,然后遍历该列表,但我觉得必须有一种更有效的方法和更实用的方法。有什么想法吗?
【问题讨论】:
标签: .net functional-programming f#