对不起标题,这个问题很难用一行来解释。我从 .txt 文件中读取单词并将其放入链表和哈希表中。我还使用时钟来记录执行每个功能所花费的时间。
listclock = clock();
list = insertlist(list, word);
listclock = clock() - listclock;
listtime = listtime + listclock;
tableclock = clock();
table = inserttable(table, word);
tableclock = clock() - tableclock;
tabletime = tabletime + tableclock;
如果我注释掉调用插入列表函数的第二行,那么我会得到 tabletime 和 tableclock 的以下值:0s 和 0.03s
如果我用 inserttable 注释掉该行,我会得到以下值:6.34s 和 0.02s
如果我让它们都运行,我会得到以下值:12.39s 和 0.04s
当哈希表函数也在运行时,执行表函数的时间是否会加倍?
Insertlist 函数:(Inserttable 函数调用此函数):
List *insertlist(List *list, char word[30]) {
List *templist = list;
while(templist != NULL) {
if(strcmp(templist->word, word) == 0) {
templist->count++;
list = addnode(list, word);
list->count = templist->count;
break;
}
templist = templist->next;
}
if(templist == NULL) {
list = addnode(list, word);
}
return list;
}