在bst中搜索密钥

时间:2015-12-28 01:08:21

标签: c++ arrays hashtable

编译器告诉我断言失败,即使我在链接节点数组中至少有2个项目。如何修复此bool包含的功能?是的,我尝试了多种方法,但我仍然遇到同样的错误。

请记住,数组的不同索引中有2个项目。但它未在下面显示。

这是contain函数:

bool Map::contains(string key){
bool idk = false;

if(elementsStoredCount != 0){
    int idk = hashFunc(key); //the hashFunc computes using modulo

    if(array[found] != nullptr){
        idk = false;
    }
    else{
        found = true;
    }
}


return found;
}

当我在main.cpp中测试时,第二行由于某种原因失败了。

assert(as.contains("1")==true);

1 个答案:

答案 0 :(得分:1)

基于其他一些注释并阅读代码,我认为您的问题是您的int hashFunc(string key)函数返回的值不在array[]范围之内。

您是否对hashFunc()函数进行了调试/测试,以确保数据正确?如果正确实现并且您仍然面临一个错误,那么我接下来会查看您的表数据/插入函数。