[cdev] hash table
Grigoriy A. Sitkarev
sitkarev на komitex.ru
Пн Янв 24 20:59:54 MSK 2011
Егор, они не проверяли.
--
Г.А.
rg-400 пишет:
> В hash_table_replace
>
> У вас есть в tabel указатель на функцию compare.
> А вы пишите: b->key != key.
>
> А если table->table[idx] содержит значение NULL
> и проверку b->key != key ( заменим на compare(b->key, key) != 0)
> проводить нельзя?
>
> while(b->key != key) {
> if (b->next == NULL){
> return -1;
> }else{
> b = b->next;
> }
> }
> Т.е. функцию нужно бы исправить.
>
> /* ищем первое совпадение в списке, если совпадений нет, то список
> просто закончится и очень просто сделать вывод был ли в списке
> ключ(сравнить b с нулевым указателем) */
>
> for (b = tabel->tabel[idx]; b != NULL; b->next) {
> if (*(tabel->compare)(b->key, key) == 0)
> break;
> }
>
> if (b == NULL)
> return -1;
>
> b->value = data;
>
>
Подробная информация о списке рассылки cdev