【发布时间】:2016-01-21 05:12:54
【问题描述】:
我正在 C 中实现 int 的优先级队列。我的标题中有一个 struct Node
typedef struct NodeTag {
int priority;
int value;
struct Node *next;
}Node;
现在在我的 C 文件中,我尝试添加一个新元素,同时遍历队列并将其中每个元素的优先级值与新元素进行比较。所以我尝试这样做
Node *prev = head;
while(prev->next && prev->next->priority >= priority){
prev=prev->next;
}
temp->next=prev->next;
prev->next=temp;
但是我得到一个编译器错误提示:
incomplete definition of type 'struct Node'
在我的 while 条件下。如何访问prev的下一个节点的优先级属性?
【问题讨论】:
-
这是一个常见的错误,尤其是在 SO 上的初学者代码中。困难在于找到一个很好的问题来复制这个问题。
-
可以看一下C语言中的“struct”。尝试使用 struct Node *prev = head browser
-
实际上,如果您尝试阅读 c std,您就会知道为什么类型中的
struct用于