Хеширование и линейное зондирование

У меня возникла проблема с хэш-функцией и алгоритмом линейного зондирования. Вот что я получил. Это для задания класса, где я должен написать программу, которая использует алгоритм хеширования для создания списка запасных частей и их количества, проданных за последний месяц. После создания хешированного списка. написать простую программу на основе меню, которая позволяет пользователю искать товар и сообщать о его проданном количестве. Я не прошу никого писать эту программу, но мне нужна помощь в создании моих функций. Спасибо за любые конструктивные советы и отзывы.:D:D

#include<iostream>
using namespace std;
int main()
{       
        int Partnumber[15] = {112,130,156,173,197,150,166,113,123,143,167,189,193,117,176};
        int Quantitynumber[15] = {12,30,56,17,19,50,66,13,12,14,16,18,19,11,76};
        int hashTable[19][2];
        int collisions = 0;

        for(int i = 0; i<15; i++)
        {       
                index = (Partnumber[i] % 19);
                hashTable[index] = Partnumber[i];

                if (hashTable[index] != 0)
                {       
                        do {
                                index++
                        } while(hashTable[index]!=0)
                }       
                if (index >= sizeOf(hashTable) )
                        index=0;
                else    hashTable[index] = Partnumber[i];
        }       
        return 0;
}

1 ответ

Похоже, вы приближаетесь к этому. У вас есть большинство необходимых строк кода. Они просто не все в нужных местах, обязательно. И не все точно правильно.

Возможно, вы захотите посмотреть на места в вашем коде, где вы устанавливаете hashTable[index] = Partnumber[i];

Предположительно, это еще не скомпилировано. Вы хотите назначить Quantitynumber[i] к чему-то?

Я признаю, что это просто игрушечный пример, но когда я оценивал такие вещи, я бы пристыковал вас за использование числовых значений 15 и 19 вместо того, чтобы помещать их в переменные или константы (лучше):

const int partCount = 15;

int Quantitynumber[partCount];
Другие вопросы по тегам