Итак, я пытаюсь подсчитать количество строк, присутствующих в моей хэш-таблице. По какой-то причине эта функция всегда возвращает 0. Я попытался переписать ее несколько раз несколькими способами, чтобы найти ошибку в логике, но, насколько мне известно, эта функция должна выводить количество записей в стол. Я бы очень признателен за помощь, так как это стало очень расстраивающим! Благодаря!Подсчет количества строк в хеш-таблице
/* htbl_n_entries : htbl* -> unsigned int */
/* return the number of entries in all buckets */
unsigned int htbl_n_entries(htbl *t){
int i;
int nbucks = t->n_buckets;
sll**bucks= t->buckets;
unsigned int sum = 0;
for (i = 0; i < nbucks; ++i)
{
while(bucks[i] != NULL){
sum++;
bucks[i] = bucks[i]->next;
}
}
return sum;
}
Вы подтвердили, что 'nbucks'> 0? – ApproachingDarknessFish
Не в этой функции функции (хотя, возможно, мне и нужно), но в ситуации, в которой вызывается функция, есть 10 ковшей. –
Я бы удостоверился, что объект, который вы проходите с помощью 't', работает правильно. Возможно, добавьте несколько простых 'cout', чтобы посмотреть, каковы его свойства. затем волнуйтесь о своей функции. – ApproachingDarknessFish