我正在尝试使用链接列表的数组来实现单独的链接。首先,我初始化的结构数组,最终由10个头节点组成,最初没有什么,而不是0,没有在节点中没有。
我认为这会起作用:
void Hash::sepChain(int key){
int i;
//initialize array with Null
myNode a[10];
for(i=0; i<10; i++){
a[i] = NULL;
}
myNode->item = key;
myNode->next = a[key%tableSize];
a[key%tableSize] = myNode;
}
但是我遇到了这个错误。
hash.cpp:176:10: error: no viable overloaded '='
a[i] = NULL;
~~~~ ^ ~~~~
./hash.hpp:30:8: note: candidate function (the implicit copy assignment operator)
not viable: no known conversion from 'long' to 'const myNode' for 1st
argument
struct myNode{
^
这就是我在.hpp中写结构的方式
struct myNode{
int item;// the value that goes into the node
myNode *next;
};
为什么我会遇到此错误?如何解决?谢谢。
a[i] = NULL;
不正确,因为该操作的LHS是myNode
类型的对象。这不是myNode
的指针。
您可以使用:
a[i] = myNode{};
您也可以使用:
myNode a[10] = {};
摆脱for
循环。
您无法将不指指针的空变量设置为null变量。如果您想将a的元素化为null,则必须将其声明为
myNode *a[10]