程序从csv创建哈希表。该函数仅适用于第一条数据,当我尝试链接新节点(链接链接)时,它无法附加新节点。我尝试读取是否存在节点,以及是否遍历直到找到终点,然后将节点“事件”插入链表。
感谢您的任何帮助。
struct hash_table_entry{
int event_id;
int year;
int event_index;
struct hash_table_entry *next = nullptr;
};
这是功能
bool insertHash(int index, hash_table_entry *event)
{
if(hashtable[index] == nullptr)
{
hashtable[index] = event;
return true;
}
hash_table_entry *pointingAt, *head;
// before we move
pointingAt = hashtable[index];
head = hashtable[index];
while(pointingAt->next)
{
pointingAt = pointingAt->next;
}
// insert
cout << pointingAt << "<- thing inserted" << endl;
pointingAt->next = event;
return true;
}
这是我在main中实现的方式(在csv中针对每一行运行)
insertHash(hashCalc(EVENT_ID,&c)
// c is the event
除了更改我追加节点的方式之外,通过添加新关键字也得到了@ user4581301的帮助
hash_table_entry* c = new hash_table_entry
{
stoi(EVENT_ID),stoi(YEAR),
counter
};