2017-10-20 49 views
0

我正在做一個使用雙鏈表的哈希表。由於代碼很長,我只是發佈我有問題的方法。C++,在哈希表中顯示內容的方法。使用雙鏈表

在我的鏈接列表類的頭文件我有這種方法,將顯示我的鏈接列表中的每個節點的內容。

void display() 
{ 
    for (node * p = head; p != NULL; p = p->next) 
    { 
     cout << p->data << endl; 
    } 
    cout << endl; 
} 

然後,我有我的cpp文件在那裏我有我的課hashTable中,但我不知道如何通過與哈希表我的頭文件中使用的方法來顯示每個列表的內容。在我的情況,我的表的大小爲10。這是我的嘗試:

void showTable() 
{ 
    for (int i = 0; i < size; i++) 
     cout << table[hash(i)].display() << " "; 
} 

我得到的錯誤是沒有運營商「< <」匹配這個操作數
二進制「< <」 :沒有操作員發現它採用類型的右手操作數「無效」(或沒有可接受的轉化率)

作爲參考,這是我的函數散列

int hash(int x) 
{ 
    return x % (size);    
} 
+1

你需要決定是否'display'不輸出或返回,你可以打印一個字符串在它之外。無法從不返回任何內容的函數中打印返回值。 –

回答

0

爲此,顯示函數必須返回一個字符串或int。 您的顯示函數返回void。這意味着你的代碼行等同於:

cout << void << " "; 
當然,這是沒有意義的

,因爲COUT只能打印字符串和數字。 我不知道所有的代碼,但由於顯示器()已打印該節點嘗試替換該行:

table[hash(i)].display(); 
+0

非常感謝您因爲沒有意識到而感到尷尬,再次感謝您 – Thevenin99