在我的c程序中,我创建了一个单链表,我们必须使用prev节点插入节点,我在main()
函数中收到此错误:
取消引用指向不完整类型'struct Node'的指针
我不确定为什么会出错。
while((temp->next != NULL) && (temp->next->data < randomNumData))
- 错误在这里
typedef struct _Node
{
int data;
struct Node *next;
} ListNode;
ListNode *newList();
ListNode *insertNode(ListNode *prev, int data);
int main()
{
ListNode *head = newList();
int randomNumData;
ListNode *temp = head;
int i;
for(i = 0; i < 11; i++)
{
randomNumData = random()%1001;
while((temp->next != NULL) && (temp->next->data < randomNumData))
{
temp = temp->next;
}
temp->data = randomNumData;
head = insertNode(temp, randomNumData);
}
printList(head);
}
// returning the head of a new list using dummy head node
ListNode *newList()
{
ListNode *head;
head = malloc(sizeof(ListNode));
if(head == NULL)
{
printf("ERROR");
exit(1);
}
head->next = NULL;
return head;
}
ListNode *insertNode(ListNode *prev, int data)
{
ListNode *temp = prev;
prev->next = temp->next;
temp->next->data = data;
return temp;
}
答案 0 :(得分:2)
在宣布下一个时,你缺少下划线。
typedef struct _Node
{
int data;
struct _Node *next;
} ListNode;
答案 1 :(得分:0)
看起来你没有名为Node的结构。从其他文件导入它或只是实现它。 C很好,但到目前为止还不是魔术师。