我遇到了出现散列函数和线性探测算法的问题。这就是我得到的。这是一个课堂作业,我必须编写一个程序,使用散列算法来创建上个月销售的库存零件清单及其数量。创建散列列表后。编写一个简单的菜单驱动程序,允许用户搜索库存物品并报告其销售数量。我不是要求任何人编写这个程序,但我确实需要一些帮助来创建我的函数。感谢任何建设性的建议和反馈。 :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;
}
答案 0 :(得分:0)
看起来你已经接近了。您拥有大部分所需的代码行。他们不一定都是在正确的地方。而且并非完全正确。
您可能希望在代码中设置hashTable[index] = Partnumber[i];
据推测,这还不能编译。您想将Quantitynumber[i]
分配给某些内容吗?
我认识到这只是一个玩具示例,但是当我对这些事情进行评分时,我会停止使用数值15和19,而不是将它们放在变量或常量中(更好):
const int partCount = 15;
int Quantitynumber[partCount];