【发布时间】:2015-04-11 23:02:34
【问题描述】:
所以我的任务是编写一些属性来检查 BST 插入函数的正确性。
这里是stub code。
我的问题是确定我真正需要做什么。 我推断插入 BST 的正确方法是在适当的位置插入(以保留 BST 属性)并允许插入重复项。
您能帮我确定每个属性的含义吗?以下是我目前的想法:
prop_insert_preserves_bst insertFunction integer
这意味着检查 BST 的结构是否正确。也就是说,每个元素都在正确的位置,左分支中的所有元素都具有较低的值,而右分支中的所有元素都具有较高的值。
prop_insert_adds_element insertFunction integer
我对这个感到困惑。最初我只是检查了新树(插入后)容器整数。现在我实际上检查了新树的长度是否长了 1 个并且有 1 个新元素是整数。
prop_insert_does_not_change_other_elements insertFunction integer newInteger
对于这个,我检查了新树中的每个元素是否与原始树相同。但是我不知道 newInteger 是什么,我没有在我的实现中使用它。
prop_insert_duplicate_check insertFunction integer
这更令人困惑。现在我已经以与prop_insert_duplicate_check insertFunction integer 相同的方式实现它。这是否意味着接受重复项并将其插入到树中? (请记住,insertBST 函数是正确的,因此必须传递所有这些属性)。
【问题讨论】:
标签: haskell binary-search-tree